Desafío:
Se le da un número de base 10. Para cada base desde 10 contando hasta la base 2:
- Tome el número de entrada original como una cadena de base 10 y elimine los dígitos del número que no sean válidos para la base.
- Interprete la cadena numérica resultante en esa base. Si esto da 1 o 0, finalice todo el proceso.
- Imprima o imprima su factor primo más grande, como número decimal.
La salida puede ser una matriz de los principales factores primos.
Casos de muestra:
Entrada:
987654321
Salida:
379721
10593529
1091
179
1493
293
19
7
Alternativamente:
[379721,10593529,1091,179,1493,293,19,7]
Esto imprime los factores primos más grandes de 987654321, 87654321 9 = 42374116 10 , 7654321 8 = 2054353 10 , y así sucesivamente hasta llegar a 1 2 , donde se detiene.
code-golf
math
primes
base-conversion
poi830
fuente
fuente
Respuestas:
Pyth, 25 bytes
Pruébalo aquí
fuente
Pyth - 16 bytes
Pruébelo en línea aquí .
A veces hay algunas líneas en blanco en las entradas sin todos los dígitos, déjame saber si eso es un problema.fuente
MATL ,
1715 bytesEsto toma el número como una cadena con comillas, que está permitido por defecto.
Pruébalo en línea!
Explicación
fuente
Julia, 101 bytes
Esta es una función recursiva que acepta la entrada como una cadena y devuelve una matriz.
Sin golf:
fuente
Mathematica, 83 bytes
Función anónima, devuelve una lista. No es tan complicado, para ser honesto.
fuente
Ruby, 120 bytes
Función recursiva, toma la entrada como una cadena.
fuente
-rprime
indicador de línea de comando en lugar derequire
.-rprime
no funciona para mí por alguna razón ...Pyke, 19 bytes, sin competencia
(agregue la función splat_node)Pruébalo aquí!
Toma entrada entre comillas, sale con un error.
Explicación (nueva línea reemplazada por \ n):
fuente