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 1sy 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
242como 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 enr3pco- factores primos∪- único⎕D,r-rantepuesto 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<1cosa. Gracias por la ayuda.-~y cosas relacionadas.