Considere el número 99999999. Ese número es obviamente un palíndromo. El factor primo más grande de 99999999 es 137. Si divide 99999999 entre 137, obtiene 729927. Este número también es un palíndromo.
El factor primo más grande de 729927 es 101. 729927/101 = 7227 que nuevamente es un palíndromo.
El factor primo más grande de 7227 es 73. 7227/73 = 99, que nuevamente es un palíndromo.
Al dividir aún más por el factor primo más grande, obtienes 9, 3 y finalmente 1, que, al ser números de un dígito, también son palíndromos. Como 1 no tiene factores primos, el procedimiento termina aquí.
Ahora, generalizando esta observación, defino un súper palíndromo como un palíndromo que es 1 o que da otro súper palíndromo si se divide por su factor primo más grande.
Créditos: /math/200835/are-there-infinitely-many-super-palindromes
Dado un número N , determine si es un súper palíndromo o no, e imprima un valor verdadero o falso en consecuencia.
Su programa debe imprimir un valor verdadero para estas entradas:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Su programa debe imprimir un valor falsey para estas entradas:
323
432
555
583
585
646
642
696
777
969
989
2112
3553
4554
5242
5225
5445
8080
8118
9988
Recuerde, este es el código de golf , por lo que gana el código con la menor cantidad de bytes.
fuente
N
siempre será un palíndromo para empezar?Respuestas:
Jalea ,
131298 bytesPruébalo en línea! o verificar todos los casos de prueba .
Cómo funciona
fuente
Mathematica, 64 bytes
Función sin nombre, regresando
True
oFalse
. Forma una lista comenzando en la entrada, luego iterando la función "yo dividido por mi factor primo más grande" hasta que la salida no cambie. (Afortunadamente, Mathematica ahora piensa que el factor primo más grande de 1 es 1.) Luego prueba si las entradas de la lista son palíndromos (¡yay incorporados! ¡Longitud del nombre de la función boo!) YAnd
s todos juntos.fuente
FactorInteger[1]
las rarezas deFixedPoint
Mathematica, 51 bytes
Función anónima recursiva. Toma un número como entrada y devuelve
True
oFalse
como salida.fuente
05AB1E ,
98 bytesSalvó un byte gracias a Adnan .
Pruébalo en línea!
Explicación
n = 7227
usado como ejemplofuente
Ò.pPDíïQ
también debería funcionar.Pyth -
1512 bytesBeat Jelly: P: /Desafortunadamente, todos esos mapas implícitos no se acortan cuando se combinan en uno explícito, ya que el último es un auto-splat.
Banco de pruebas .
Obtiene todos los prefijos de la factorización prima, cuyos productos serán los súper palíndromos intermedios, y comprueba si todos son palíndromos.
fuente
Mathematica,
7163 bytesExplicación
Factoriza la entrada. (por ejemplo
8668 -> {{2, 2}, {11, 1}, {197, 1}}
, para cada lista en la salida, el primer elemento es el factor primo y el segundo es la potencia.Para cada par factor-potencia, duplica el primer elemento por el segundo elemento y aplana todo. (
{{2, 2}, {11, 1}, {197, 1}} -> {{2, 2}, {11}, {197}} -> {2, 2, 11, 197}
)Iterar a través de la lista, multiplicando los elementos. (
{2, 2, 11, 197} -> {2, 2 * 2, 2 * 2 * 11, 2 * 2 * 11 * 197} -> {2, 4, 44, 8668}
)Compruebe si todos los números resultantes son palíndromos y aplique el
And
operador. ({2, 4, 44, 8668} -> {True, True, True, True}
->True
)fuente
Brachylog , 14 bytes
Pruébalo en línea!
Explicación
Esto implementa la fórmula explicada en la descripción del desafío.
Calcular todos los productos de sufijos de factorización prima y verificar que todos son palíndromos es 1 byte más largo (
1|$p:@]f:{*.r}a
).fuente
Raqueta 238 bytes
Sin golf:
Pruebas:
Salida:
fuente
palin
sea un nombre de cinco bytes?J, 30 bytes
Error para falsey, 1 para verdad.
Intento inicial, no error para falsey, 40 bytes:
Explicación
Casos de prueba
fuente
아희 (Aheui) , 309 bytes (100 caracteres * 3 bytes + 9 líneas nuevas)
¡Estoy tan feliz de haberlo terminado!
Soy nuevo en este idioma, por lo que cualquier consejo para mejorar el conteo de bytes es bienvenido.
Pruébalo aquí! (copia y pega el código)
Versión más limpia
fuente
Scala, 138 bytes
Sin golf:
Explicación:
fuente
JavaScript (ES6), 78 bytes
Recursivamente construye los prefijos de factorización primarios y los verifica por palindromicidad.
fuente
Java 7, 133 bytes
Sin golf
fuente
Actualmente , 29 bytes
Probablemente hay varias secciones de este código que podrían jugarse golf, aunque todavía no estoy seguro de dónde. Sugerencias de golf bienvenidas. Pruébalo en línea!
Ungolfing
fuente