Entrada
Um único inteiro .
Resultado
O número máximo de números inteiros positivos distintos que possuem o produto .
Exemplos
Entrada: 1099511627776. Saída: 9. Uma lista ótima possível de fatores é: (1, 2, 4, 8, 16, 32, 64, 128, 4096).
Entrada: 127381. Saída 4. Uma lista ótima possível de fatores é: (1, 17, 59, 127).
Relacionado a esta pergunta antiga .
code-golf
. Você pode considerar umfastest-code
oufastest-algorithm
um próximo desafio. Se você realmente queria que todas as respostas funcionassem em um tempo limitado dentro do intervalo especificado, isso deveria ter sido mencionado explicitamente. (E eu teria recomendado um intervalo menor para que ele não entre em conflito comcode-golf
inteiramente.)x=1, 2, ...
recebo of(x)=1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 3, 4, 2, 3
que não encontro no OEIS. É claro o suficiente que os registros aparecerão para números fatoriaisx
. Por exemplo, o menorx
tal quef(x)=13
será13!
. Eu acho quef
depende apenas dos expoentes da fatoração principal. Então, para descobrir,f(13^4*19^7*29^2)
podemos simplificarf(2^7*3^4*5^2)
.Respostas:
Wolfram Language (Mathematica) , 52 bytes
Experimente online!
4 bytes salvos graças a @attinat
Aqui também está uma versão de 153 bytes que calcula
1099511627776
e10^15
Experimente online!
O resultado para
10^15
é 12fonte
Wolfram Language (Mathematica) , 38 bytes
Experimente online!
Algoritmo ganancioso. Tempo limite no TIO em entradas maiores, como
1099511627776
.fonte
05AB1E , 9 bytes
Muito ineficiente. Tempo limite no TIO para números com uma grande quantidade de divisores.
Experimente online!
Explicação
fonte
€gZ
é um pouco mais eficiente do queéθg
para o mesmo número de conta.Perl 6 , 38 bytes
Experimente online!
Adota a abordagem gananciosa para selecionar divisores.
fonte
Javascript (ES6), 39 bytes
Provavelmente existem alguns bytes que podem ser salvos aqui e ali. Apenas usa o algoritmo ganancioso para os fatores.
fonte
Geléia , 9 bytes
Experimente online!
-1 byte graças a alguém
-2 bytes graças a ErikTheOutgolfer
fonte
ÆE×8‘½’:2S‘
(-lo funciona com o poder da seção "fórmula" da OEIS para A003056). Isenção de responsabilidade: pode estar errado, mas funciona nos casos de teste.ÆD
, não é como se houvesse mais partições que serão criadas dessa maneira, só levaria muito mais tempo (o tempo limite para \ $ x \ ge21 \ $).Japonês
-h
, 13 bytesTente
fonte
Braquilog , 8 bytes
Experimente online!
(A abordagem ingênua
{~×≠l}ᶠ⌉
, gera um número infinito de soluções com 1s extras antes de eliminá-las e≠
, portanto, não termina. Na verdade, não é um problema, pois é para a mesma contagem de bytes!)Leva a entrada através da variável de entrada e a saída através da variável de saída. O cabeçalho no TIO contém uma cópia da maior parte do código para mostrar qual é a lista de fatores, mas isso funciona perfeitamente sem ela. Como
⊇
primeiro fornece sublistas maiores, esse predicado faz essencialmente o mesmo que a maioria das outras respostas, mas sem gerar e filtrar explicitamente o conjunto completo de potências dos fatores, graças ao retorno.fonte
Scala , 77 bytes
Experimente online!
fonte
Gaia ,
109 bytesExperimente online!
Segue o mesmo "algoritmo" visto em outro lugar - filtre o conjunto de potência do divisor por mais tempo com o produto igual ao número e retorne seu comprimento.
fonte
Amêijoa , 15 bytes
Link TIO em breve (quando dennis puxa)
Basicamente, uma porta da solução 05AB1E da @ Emigna.
Explicação
fonte
C # (compilador interativo do Visual C #) , 54 bytes
Usa a mesma abordagem que as respostas de @ vrugtehagel e @ JoKing.
Experimente online!
fonte
Ruby , 34 bytes
Obviamente, atinge o tempo limite desse número massivo, mas eventualmente atingirá o tempo limite se houver tempo suficiente em outra máquina.
Experimente online!
fonte