El título del video más nuevo de Numberphile, 13532385396179 , es un punto fijo de la siguiente función f en los enteros positivos:
Sea n un número entero positivo. Escriba la factorización prima de la manera habitual, por ejemplo, 60 = 2 2 · 3 · 5, en la que los primos se escriben en orden creciente y se omiten los exponentes de 1. Luego lleva los exponentes a la línea y omite todos los signos de multiplicación, obteniendo un número f (n). [...] por ejemplo, f (60) = f (2 2 · 3 · 5) = 2235.
(La definición anterior está tomada del problema 5 de cinco problemas de $ 1,000 - John H. Conway )
Tenga en cuenta que f (13532385396179) = f (13 · 53 2 · 3853 · 96179) = 13532385396179.
Tarea
Tome un entero compuesto positivo n
como entrada y salida f(n)
.
Otro ejemplo
48 = 2 4 · 3, entonces f (48) = 243.
Casos de prueba
Más casos de prueba están disponibles aquí .
4 -> 22
6 -> 23
8 -> 23
48 -> 243
52 -> 2213
60 -> 2235
999 -> 3337
9999 -> 3211101
fuente
Respuestas:
Python,
166162159 bytesUstedes muchachos están mucho mejor. ¡Esto es lo que usé! (el algoritmo que lo resolvió llama a esto)
fuente
Brachylog , 8 bytes
Pruébalo en línea!
Explicación
Puede usar
ℕ₂ˢ
( seleccione todos los enteros mayores o iguales a 2 ) en lugar de;1x
, lo que probablemente sea más legible y esté más en el espíritu de Brachylog.fuente
Jalea , 6 bytes
Pruébalo en línea!
Explicación
fuente
V
= "concatenar a una sola cadena y evaluar como Jelly"Ḍ
(Convertir de decimal a entero)?FḌ
en el pasado, ¡es un buen consejo!Mathematica,
4336 BytesPruébalo en línea!
fuente
DeleteCases
es largo, puede usar/.1->""
o/.1->##&[]
(forma alternativa de/.1->Nothing
1
para evitar que se analice como... / (0.1)
.CJam , 8 bytes
Pruébalo en línea!
Explicación
fuente
e_
a aplanar, ya que para eso está, pero no cambia la puntuación.e_
usar solo para aplanar profundamente y usar:~
siempre que sea solo un nivel.05AB1E , 10 bytes
Pruébalo en línea!
fuente
05AB1E ,
1211 bytesPruébalo en línea!
Explicación
fuente
48
.Pyth, 12 bytes
¡Intentalo!
alternativa, 12 bytes
¡Trata eso!
explicación
fuente
Pyth, 11 bytes
Intenta aquí
fuente
Python 2 , 99 bytes
Pruébalo en línea!
Si las entradas están restringidas para estar debajo
2147483659
, ambasstr(...)
pueden reemplazarse`...`
guardando 6 bytes (¡este programa será muy lento para los números afectados de todos modos!).fuente
Ohm , 11 bytes
Pruébalo en línea!
Explicación
fuente
Japt , 19 bytes
¡Pruébalo en línea!
Explicación
fuente
PHP , 88 bytes
Pruébalo en línea!
fuente
C #,
206100 bytesVersión completa / formateada:
fuente
Javascript - 91 bytes
Explicación
fuente
Java 8, 103 caracteres
Solución bastante sencilla.
Sin golf:
fuente
Octava , 69 bytes
Pruébalo en línea!
Terminó siendo bastante largo, pero esto generará la salida deseada.
Esencialmente, utilizamos la función de histograma para contar el número de ocurrencias de los valores únicos en la factorización prima del valor de entrada.
factor()
función da los factores primos en orden ascendenteunique()
valores en esa matrizhist()
devuelve el número de ocurrenciasUna vez que tenemos las dos matrices (una para factores únicos, otra para recuentos), concatenamos las matrices verticalmente (una encima de la otra) y luego se aplanan. Esto intercala los factores con recuentos.
Finalmente, mostramos el resultado como una cadena que garantiza omitir cualquier 1 en la matriz final. El único momento en que puede aparecer 1 es si el recuento fue 1 porque 1 nunca será un factor primo. Esta eliminación se realiza antes de convertir a una cadena para que no afecte cosas como el número 10.
fuente
Ruby , 45 + 7 bytes
Requiere la bandera
-rprime
.Pruébalo en línea!
fuente
Pyth - 16 bytes
Intentalo
Otra solución:
fuente
FN
porV
.r8
(codificación de longitud de ejecución) parece ser útil.R , 72 bytes
Requiere el
pracma
paquete, que no está instalado en TIO.fuente