Considere o número 99999999. Esse número é obviamente um palíndromo. O maior fator primo de 99999999 é 137. Se você dividir 99999999 por 137, obtém 729927. Esse número também é um palíndromo.
O maior fator primordial de 729927 é 101. 729927/101 = 7227, que novamente é um palíndromo.
O maior fator primo de 7227 é 73. 7227/73 = 99, que novamente é um palíndromo.
Ao dividir ainda mais pelo maior fator primo, você obtém 9, 3 e finalmente 1, que, sendo números de um dígito, também são palíndromos. Como 1 não possui fatores primos, o procedimento termina aqui.
Agora generalizando essa observação, defino um super-palíndromo como um palíndromo que é 1 ou que dá outro super-palíndromo se dividido pelo seu maior fator primo.
Créditos: /math/200835/are-there-infinitely-many-super-palindromes
Dado um número N , determine se é um super palíndromo ou não e imprima um valor de verdade ou falsey de acordo.
Seu programa deve imprimir um valor verdadeiro para estas entradas:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Seu programa deve imprimir um 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
Lembre-se, isso é código-golfe , portanto o código com a menor quantidade de bytes vence.
fonte
N
sempre será um palíndromo para começar?Respostas:
Gelatina ,
131298 bytesExperimente online! ou verifique todos os casos de teste .
Como funciona
fonte
Mathematica, 64 bytes
Função sem nome, retornando
True
ouFalse
. Forma uma lista iniciando na entrada e repetindo a função "me dividido pelo meu maior fator principal" até que a saída não seja alterada. (Felizmente, Mathematica agora acha que o maior fator primordial de 1: 1) Em seguida, testa se as entradas da lista são palíndromos (yay built-ins! Boo comprimento nome da função!) EAnd
é-los todos juntos.fonte
FactorInteger[1]
esquisitices comFixedPoint
Mathematica, 51 bytes
Função anônima recursiva. Pega um número como entrada e retorna
True
ouFalse
como saída.fonte
05AB1E ,
98 bytesGuardou um byte graças a Adnan .
Experimente online!
Explicação
n = 7227
usado como exemplofonte
Ò.pPDíïQ
também deve funcionar.Pitão -
1512 bytesBeat Jelly: P: /Infelizmente, todos esses mapas implícitos não ficam mais curtos quando combinados em um explícito, pois o último é um splat automático.
Conjunto de Teste .
Obtém todos os prefixos da fatoração primária, cujos produtos serão os super palíndromos intermediários e verifica se todos eles são palíndromos.
fonte
Mathematica,
7163 bytesExplicação
Fatore a entrada. (por exemplo
8668 -> {{2, 2}, {11, 1}, {197, 1}}
, para cada lista na saída, o primeiro elemento é o fator principal e o segundo é a potência.Para cada par fator-potência, duplique o primeiro elemento pelo segundo e aplane tudo. (
{{2, 2}, {11, 1}, {197, 1}} -> {{2, 2}, {11}, {197}} -> {2, 2, 11, 197}
)Repita a lista, multiplicando os elementos. (
{2, 2, 11, 197} -> {2, 2 * 2, 2 * 2 * 11, 2 * 2 * 11 * 197} -> {2, 4, 44, 8668}
)Verifique se todos os números resultantes são palíndromos e aplique o
And
operador. ({2, 4, 44, 8668} -> {True, True, True, True}
->True
)fonte
Braquilog , 14 bytes
Experimente online!
Explicação
Isso implementa a fórmula explicada na descrição do desafio.
A computação de todos os produtos dos sufixos da fatoração primária e a verificação de que todos são palíndromos têm 1 byte a mais (
1|$p:@]f:{*.r}a
).fonte
Raquete 238 bytes
Ungolfed:
Teste:
Saída:
fonte
palin
seja um nome de cinco bytes?J, 30 bytes
Erro para falsey, 1 para verdade.
Tentativa inicial, não erro para falsey, 40 bytes:
Explicação
Casos de teste
fonte
A (Aheui) , 309 bytes (100 caracteres * 3 bytes + 9 novas linhas)
Estou tão feliz que terminei!
Como sou novo nesse idioma, qualquer dica sobre como melhorar a contagem de bytes é bem-vinda.
Experimente aqui! (copie e cole o código)
Versão mais limpa
fonte
Scala, 138 bytes
Ungolfed:
Explicação:
fonte
JavaScript (ES6), 78 bytes
Cria recursivamente os prefixos de fatoração primários e verifica a palindromicidade deles.
fonte
Java 7, 133 bytes
Ungolfed
fonte
Na verdade , 29 bytes
Provavelmente existem várias seções desse código que podem ser jogadas no golfe, embora ainda não tenha certeza de onde. Sugestões de golfe são bem-vindas. Experimente online!
Ungolfing
fonte