Entrada
Un solo entero .
Salida
El número máximo de enteros positivos distintos que tienen el producto .
Ejemplos
Entrada: 1099511627776. Salida: 9. Una posible lista óptima de factores es: (1, 2, 4, 8, 16, 32, 64, 128, 4096).
Entrada: 127381. Salida 4. Una posible lista óptima de factores es: (1, 17, 59, 127).
Relacionado con esta vieja pregunta .
code-golf
. Puede considerar cualquierafastest-code
ofastest-algorithm
para un próximo desafío. Si realmente desea que todas las respuestas funcionen en un tiempo limitado dentro del rango especificado, debería haber sido mencionado explícitamente. (Y hubiera recomendado un rango más pequeño para que no entre en conflicto porcode-golf
completo).x=1, 2, ...
consigof(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
lo que no encuentro en OEIS. Está suficientemente claro que aparecerán registros para números factorialesx
. Por ejemplo, el más pequeñox
quef(x)=13
será13!
. Supongo quef
depende solo de los exponentes de la factorización prima. Entonces para encontrarf(13^4*19^7*29^2)
podríamos simplificarf(2^7*3^4*5^2)
.Respuestas:
Wolfram Language (Mathematica) , 52 bytes
Pruébalo en línea!
4 bytes guardados gracias a @attinat
Aquí también hay una versión de 153 bytes que calcula
1099511627776
y10^15
Pruébalo en línea!
El resultado para
10^15
es 12fuente
Wolfram Language (Mathematica) , 38 bytes
Pruébalo en línea!
Algoritmo codicioso. Se agota el tiempo de espera en TIO en entradas más grandes como
1099511627776
.fuente
05AB1E , 9 bytes
Muy ineficiente Tiempo de espera en TIO para números con una gran cantidad de divisores.
Pruébalo en línea!
Explicación
fuente
€gZ
es un poco más eficiente queéθg
para el mismo bytecount.Perl 6 , 38 bytes
Pruébalo en línea!
Toma el enfoque codicioso para seleccionar divisores.
fuente
Javascript (ES6), 39 bytes
Probablemente hay algunos bytes que se pueden guardar aquí y allá. Solo usa el algoritmo codicioso para los factores.
fuente
Jalea , 9 bytes
Pruébalo en línea!
-1 byte gracias a alguien
-2 bytes gracias a ErikTheOutgolfer
fuente
ÆE×8‘½’:2S‘
( funciona con el poder de la sección "fórmula" de OEIS para A003056). Descargo de responsabilidad: puede estar equivocado, pero funciona en los casos de prueba.ÆD
, no es que haya más particiones que se crearán de esta manera, solo tomará mucho más tiempo (se agota el tiempo paraJapt
-h
, 13 bytesIntentalo
fuente
Brachylog , 8 bytes
Pruébalo en línea!
(El enfoque ingenuo
{~×≠l}ᶠ⌉
genera un número infinito de soluciones con 1s adicionales antes de eliminarlas≠
y, por lo tanto, no termina realmente. Sin embargo, ¡no es un problema, ya que es para el mismo recuento de bytes!)Toma la entrada a través de la variable de entrada y la salida a través de la variable de salida. El encabezado en TIO contiene una copia de la mayoría del código con el fin de mostrarle cuál es la lista de factores, pero esto funciona perfectamente sin él. Dado que
⊇
primero se proporcionan sublistas más grandes, este predicado esencialmente hace lo mismo que la mayoría de las otras respuestas, pero sin generar y filtrar explícitamente el conjunto de potencia completo de los factores, gracias al retroceso.fuente
Scala , 77 bytes
Pruébalo en línea!
fuente
Gaia ,
109 bytesPruébalo en línea!
Sigue el mismo "algoritmo" que se ha visto en otra parte: filtre el conjunto de potencia del divisor durante más tiempo con un producto igual al número y devuelva su longitud.
fuente
Almeja , 15 bytes
Enlace TIO próximamente (cuando dennis tire)
Básicamente un puerto de la solución 05AB1E de @ Emigna.
Explicación
fuente
C # (compilador interactivo de Visual C #) , 54 bytes
Utiliza el mismo enfoque que las respuestas de @ vrugtehagel y @ JoKing.
Pruébalo en línea!
fuente
Ruby , 34 bytes
Obviamente se agota el tiempo en ese número masivo, pero eventualmente se agota el tiempo si se le da suficiente tiempo en otra máquina.
Pruébalo en línea!
fuente