Dado um número inteiro n >= 2
, produz o maior expoente em sua fatoração primária. Esta é a sequência O0IS A051903 .
Exemplo
Let n = 144
. Sua principal fatoração é 2^4 * 3^2
. O maior expoente é 4
.
Casos de teste
2 -> 1
3 -> 1
4 -> 2
5 -> 1
6 -> 1
7 -> 1
8 -> 3
9 -> 2
10 -> 1
11 -> 1
12 -> 2
144 -> 4
200 -> 3
500 -> 3
1024 -> 10
3257832488 -> 3
Respostas:
05AB1E , 2 bytes
Experimente online!
Quão?
fonte
Python 2 ,
625756 bytesExperimente online!
fonte
f=lambda n,k=0:max(k%n-n%(k/n+2)**(k%n)*n,k<n**2and f(n,k+1))
Gelatina , 3 bytes
Experimente online!
Isso também funciona em M . Experimente online!
fonte
Haskell ,
6160504846 bytes-2 bytes graças ao xnor
Experimente online!
45 bytes com uma importação:
Experimente Online!
fonte
0^
é bonito, mas é mais curto para apenas verificar a condição como um boolean.Ohm v2 , 2 bytes
Experimente online!
Explicação?
Não.
fonte
Python 2 , 78 bytes
Experimente online!
-5 graças a ovs .
Esta resposta não faz verificações principais. Em vez disso, tira vantagem do fato de que o expoente mais alto de um fator primo será maior ou igual ao expoente de qualquer outro fator em qualquer fatoração de um número.
fonte
Japonês
-h
,97 bytesTente
fonte
ü
cria sub-matrizes de valores iguais. Ele faz também ordenar por valor primeiro, mas isso não é relevante aqui.Mathematica, 27 bytes
Experimente online!
fonte
Max@@Last/@FactorInteger@#&
,. Infelizmente, isso não salva bytes.MATL , 4 bytes
Experimente online!
fonte
Braquilog , 5 bytes
Experimente online!
Explicação
fonte
Casca , 5 bytes
Experimente online!
p
- Obtém os principais fatores.g
- Agrupa valores adjacentes.mL
- Obtém os comprimentos de cada grupo.▲
- Máximo.fonte
APL (Dyalog) , 19 bytes
Experimente online!
Quão?
2pco⎕
- Conjunto 2D de fatores primos e expoentes1↓
- abandone os fatores⌈/
- máximofonte
Javascript 54 bytes
* assumindo pilha infinita (como acontece nos desafios de código-golfe)
fonte
PARI / GP, 24 bytes
Se eu não contar a
n->
parte, são 21 bytes.fonte
Oitava , 25 bytes
Experimente online!
Explicação
factor
produz a matriz de expoentes primos (possivelmente repetidos) A segunda saída demode
fornece o número de vezes que o modo (isto é, a entrada mais repetida) aparece.fonte
Pitão , 7 bytes
Experimente aqui.
fonte
eS/LPQP
(7 bytes),eSlM.gkP
(8 bytes).Python 2 ,
9084 bytesExperimente online!
fonte
Gaia , 4 bytes
Experimente online!
ḋ
- Calcula a fatoração primária como pares [primos, expoentes] .⌠
- Mapeie e colete o resultado com o valor máximo.)
- Último elemento (expoente).)
- Último elemento (expoente máximo)Gaia , 4 bytes
Experimente online!
ḋ
- Calcula a fatoração primária como pares [primos, expoentes] .)¦
- Mapa com o último elemento (expoente).⌉
- Obtém o elemento máximo.fonte
MEU , 4 bytes
Experimente online!
Explicação?
fonte
Oitava : 30 bytes
a=factor(x)
retorna um vetor contendo os fatores primos dex
. Este é um vetor classificado em ordem crescente, em que a multiplicação de todos os números sefactor(x)
produz dex
tal forma que cada número no vetor é primo.histc(...,a)
calcula um histograma no vetor de fatores primos, em que os compartimentos são os fatores primos. O histograma conta quantas vezes vimos cada número primo, produzindo o expoente de cada número primo. Podemos trapacear um pouco aqui, porque, emborafactor(x)
retorne números ou posições duplicados, apenas uma delas capturará a quantidade total de vezes que vemos um número primo.max(...)
assim retorna o maior expoente.Experimente online!
fonte
Alice , 17 bytes
Experimente online!
Explicação
Essa é apenas uma estrutura para programas aritméticos simples com E / S decimal. O
...
é o programa real, que já tem a entrada na pilha e deixa a saída no topo da pilha.Na verdade, Alice tem built-ins para obter a fatoração primária de um número inteiro (mesmo com pares de expoentes primos), mas o mais curto que eu já usei é 10 bytes a mais que isso.
Em vez disso, a idéia é que dividimos repetidamente uma cópia de cada fator primo distinto da entrada, até chegarmos a 1 . O número de etapas que você executa é igual ao maior expoente principal. Abusaremos da cabeça da fita como variável do contador.
fonte
Julia,
605240 bytesCorreção -12 + graças ao Steadybox
fonte
print()
. Além disso, não consegui que o código fosse executado no TIO como está, presumo que ele funcione em alguma outra versão do idioma que não está disponível lá? Isso funciona bem no TIO:print(maximum(collect(values(factor(parse(BigInt,readline()))))))
print()
é necessária porque a resposta tem de ser um programa completo (que exibe a saída) ou uma função (que retorna a saída). Caso contrário, sua solução está correta. Parece que você pode salvar alguns bytes (e evitar a impressão) desta maneira:f(x)=maximum(collect(values(factor(x))))
Na verdade , 4 bytes
Experimente online!
fonte
Python 2 , 64 bytes
-4 bytes graças a H.PWiz.
Experimente online!
Resposta do porto de H.PWiz Haskell . Só estou compartilhando isso porque tenho orgulho de ter conseguido entender esse pedaço de código Haskell e traduzi-lo. : P
fonte
range(1,n)
funciona?range(1, n)
produz todos os números inteiros em [1, n).a
Axioma, 61 bytes
Esta é a primeira vez que acho possível definir a função sem o uso de parênteses (). Em vez de "f (n) ==" "fn ==" um caractere a menos ...
fonte
Raquete ,
8379 bytesExperimente online!
(Não tenho certeza se existe um consenso sobre o que constitui uma solução completa do Racket, então vou com a convenção do Mathematica de que uma função pura conta.)
Como funciona
factorize
dá a fatoração como uma lista de pares:(factorize 108)
dá'((2 2) (3 3))
. O segundo elemento de um par é dado porcadr
, uma abreviação para a composição decar
(cabeça de uma lista) comcdr
(cauda de uma lista).Eu me sinto boba fazendo
(cadr (argmax cadr list))
para encontrar o máximo dos segundos elementos, masmax
não funciona em listas:(max (map cadr list))
não faz o que queremos. Eu não sou especialista em Racket, então talvez haja uma maneira padrão melhor de fazer isso.Raquete, 93 bytes
Experimente online!
Como funciona
Uma versão alternativa que não importa
factorize
e faz tudo do zero, mais ou menos. A função(p m d)
encontra o maior poder dod
que dividem
e então nós apenas encontrar maior valor de(p n d)
parad
entre2
en
. (Não precisamos restringir isso a números primos, pois não haverá um poder composto que funcione melhor do que os poderes primos.)fonte
max
solução padrão é,(apply max (map cadr list)
mas(cadr (argmax cadr list))
infelizmente é mais curta.J, 9 bytes
Máximo de
<./
todos os expoentes principais_&q:
Experimente online!
fonte
APL (NARS), 15 caracteres, 30 bytes
teste:
Comente:
fonte