Considérez le nombre 99999999. Ce nombre est évidemment un palindrome. Le plus grand facteur premier de 99999999 est 137. Si vous divisez 99999999 par 137, vous obtenez 729927. Ce nombre est également un palindrome.
Le plus grand facteur premier de 729927 est 101. 729927/101 = 7227 qui est à nouveau un palindrome.
Le plus grand facteur premier de 7227 est 73. 7227/73 = 99 qui est encore un palindrome.
En divisant davantage par le plus grand facteur premier, vous obtenez 9, 3 et enfin 1, qui, étant des nombres à un chiffre, sont également des palindromes. Puisque 1 n'a pas de facteurs premiers, la procédure se termine ici.
En généralisant maintenant cette observation, je définis un super-palindrome comme un palindrome qui est soit 1, soit qui donne un autre super-palindrome s'il est divisé par son plus grand facteur premier.
Crédits: /math/200835/are-there-infinitely-many-super-palindromes
Étant donné un nombre N , déterminez s'il s'agit d'un super palindrome ou non et imprimez une valeur véridique ou falsey en conséquence.
Votre programme doit imprimer une valeur véridique pour ces entrées:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Votre programme doit imprimer une valeur de falsey pour ces entrées:
323
432
555
583
585
646
642
696
777
969
989
2112
3553
4554
5242
5225
5445
8080
8118
9988
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le plus petit nombre d'octets l'emporte.
la source
N
sera- t-elle toujours un palindrome au départ?Réponses:
Gelée ,
131298 octetsEssayez-le en ligne! ou vérifiez tous les cas de test .
Comment ça marche
la source
Mathematica, 64 octets
Fonction sans nom, retour
True
ouFalse
. Forme une liste en commençant à l'entrée, puis en itérant la fonction "moi divisé par mon plus grand facteur premier" jusqu'à ce que la sortie ne change pas. (Heureusement, Mathematica pense maintenant que le plus grand facteur premier de 1 est 1.) Puis teste si les entrées de la liste sont des palindromes (yay built-ins! Boo function name name!) Et lesAnd
s tous ensemble.la source
FactorInteger[1]
les bizarreries de 'avecFixedPoint
Mathematica, 51 octets
Fonction anonyme récursive. Prend un nombre en entrée et retourne
True
ouFalse
en sortie.la source
05AB1E ,
98 octetsEnregistré un octet grâce à Adnan .
Essayez-le en ligne!
Explication
n = 7227
utilisé comme exemplela source
Ò.pPDíïQ
devrait également fonctionner.Pyth -
1512 octetsBeat Jelly: P: /Malheureusement, toutes ces cartes implicites ne raccourcissent pas lorsqu'elles sont combinées en une carte explicite car la dernière est une auto-splat.
Suite de tests .
Obtient tous les préfixes de la factorisation principale, dont les produits seront les super-palindromes intermédiaires, et vérifie si tous sont des palindromes.
la source
Mathematica,
7163 octetsExplication
Factorisez l'entrée. (par exemple
8668 -> {{2, 2}, {11, 1}, {197, 1}}
; pour chaque liste dans la sortie, le premier élément est le facteur premier, et le second est la puissance.Pour chaque paire facteur-puissance, dupliquez le premier élément par le deuxième élément et aplatissez le tout. (
{{2, 2}, {11, 1}, {197, 1}} -> {{2, 2}, {11}, {197}} -> {2, 2, 11, 197}
)Parcourez la liste en multipliant les éléments. (
{2, 2, 11, 197} -> {2, 2 * 2, 2 * 2 * 11, 2 * 2 * 11 * 197} -> {2, 4, 44, 8668}
)Vérifiez si tous les nombres résultants sont des palindromes et appliquez l'
And
opérateur. ({2, 4, 44, 8668} -> {True, True, True, True}
->True
)la source
Brachylog , 14 octets
Essayez-le en ligne!
Explication
Cela implémente la formule expliquée dans la description du défi.
Calculer tous les produits des suffixes de la factorisation principale et vérifier qu'ils sont tous des palindromes est de 1 octet de plus (
1|$p:@]f:{*.r}a
).la source
Raquette 238 octets
Non golfé:
Essai:
Sortie:
la source
palin
soit un nom long de cinq octets?J, 30 octets
Erreur pour falsey, 1 pour véridique.
Tentative initiale, sans erreur pour falsey, 40 octets:
Explication
Cas de test
la source
아희 (Aheui) , 309 octets (100 caractères * 3 octets + 9 sauts de ligne)
Je suis tellement contente d'avoir fini!
Je suis nouveau dans cette langue, donc toute astuce pour améliorer le nombre d'octets est la bienvenue.
Essayez-le ici! (copiez et collez le code)
Version plus propre
la source
Scala, 138 octets
Non golfé:
Explication:
la source
JavaScript (ES6), 78 octets
Construit récursivement les préfixes de factorisation principaux et vérifie leur palindromicité.
la source
Java 7, 133 octets
Non golfé
la source
Réellement , 29 octets
Il y a probablement plusieurs sections de ce code qui pourraient être jouées, mais je ne sais pas encore où. Suggestions de golf bienvenues. Essayez-le en ligne!
Ungolfing
la source