Esto no tiene un propósito práctico, pero podría ser divertido jugar al golf.
Desafío
Dado un número n ,
- Cuente la cantidad de cada dígito en ny agregue 1 a cada recuento
- Tome la factorización prima de n
- Cuente la cantidad de cada dígito en la factorización prima de n , sin incluir primos duplicados
- Cree una nueva lista multiplicando los elementos respectivos de las listas de los pasos 1 y 3
- Devuelve la suma de esa lista
Por ejemplo, 121 tiene dos 1
sy a 2
, por lo que obtendría la siguiente lista del paso 1:
0 1 2 3 4 5 6 7 8 9
1 3 2 1 1 1 1 1 1 1
La factorización prima de 121 es 11 2 , que proporciona la siguiente lista para el paso 3:
0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0
Note como no contamos el exponente. Estos se multiplican para obtener:
0 1 2 3 4 5 6 7 8 9
0 6 0 0 0 0 0 0 0 0
Y la suma de esta lista es 6.
Casos de prueba
1 -> 0
2 -> 2
3 -> 2
4 -> 1
5 -> 2
10 -> 2
13 -> 4
121 -> 6
Notas
- Las lagunas estándar están prohibidas.
- La entrada y salida pueden estar en cualquier formato razonable.
- Debe dejar unos (o ceros para el paso 3) en la lista de dígitos que no aparecen en el número.
- Este es el código de golf , por lo que gana la solución más corta en bytes.
232792560
->[2,1,4,2,1,2,2,2,1,2]
(paso 1);2*2*2*2*3*3*5*7*14*17*19
(paso 2); entonces[0,5,1,2,0,1,0,2,0,1]
(paso 3); entonces[0,5,4,4,0,2,0,4,0,2]
(Paso 4); y por lo tanto debería salir21
.Respuestas:
Jalea , 16 bytes
Pruébalo en línea!
Desarrollado independientemente y no exactamente igual que la otra solución Jelly .
Explicación
Voy a usarlo
242
como entrada de ejemplo.fuente
Jalea ,
1817 bytes-1 byte gracias a caird coinheringaahing y H.PWiz (evite emparejar los dos vectores)
Un enlace monádico que toma un número entero positivo y devuelve un número entero no negativo.
Pruébalo en línea!
¿Cómo?
fuente
APL (Dyalog) ,
4341 bytesPruébalo en línea!
¿Cómo?
r←⎕
- Entrada enr
3pco
- factores primos∪
- único⎕D,r
-r
antepuesto con0-9
⍕¨
- formatear los factores y el rango antepuesto⎕D∘.=
- comparación cartesiana con cada elemento de la cadena0123456789
+/¨
- suma cada fila de las dos tablas formadas×/
- multiplica los dos vectores restantes+/
- suma el último vector formadofuente
Pip , 44 bytes
Toma datos del argumento de la línea de comandos. Pruébalo en línea!
fuente
Python 2 ,
136127bytesPruébalo en línea!
Créditos
fuente
-~
Siempre estaba un poco confundido con eso. Y necesito comenzar a recordar la<1
cosa. Gracias por la ayuda.-~
y cosas relacionadas.