Intro
Inverser et ajouter est aussi simple que n
cela puisse paraître, prenez-le et ajoutez-le à ses chiffres dans l'ordre inverse. (par exemple 234 + 432 = 666).
Si vous appliquez ce processus à plusieurs reprises, certains nombres finiront par atteindre un nombre premier, et certains n'atteindront jamais un nombre premier.
Exemple
J'ai actuellement
11431 rep.
11431 is not prime
11431 + 13411 = 24842 which is not prime
24842 + 24842 = 49684 which is not prime
49684 + 48694 = 98378 which is not prime
98378 + 87389 = 185767 which is prime!
Ce nombre atteint son apogée
En revanche, tout multiple de 3 n'atteindra jamais un nombre premier, c'est parce que tous les multiples de 3 ont une somme de chiffres qui est un multiple de 3 et vice versa. Ainsi, inverser et ajouter un multiple de 3 donnera toujours un nouveau multiple de 3 et donc jamais un nombre premier.
Tâche
Prenez un entier positif n
et déterminez si une inversion et une addition répétées entraîneront un nombre premier. Sortez une valeur véridique ou fausse. Soit véridique pour atteint une valeur première et fausse pour non, soit l'inverse est acceptable.
Les nombres premiers seront considérés comme atteignant un nombre premier en zéro itération.
Il s'agit de code-golf , essayez donc de rendre votre code aussi court que possible.
Cas de test
Vrai pour atteint un premier faux pour n'atteint jamais un premier
11 -> True
11431 -> True
13201 -> True
13360 -> True
13450 -> True
1019410 -> True
1019510 -> True
22 -> False
1431 -> False
15621 -> False
14641 -> False
Allusion
Pendant que j'écrivais ce défi, j'ai découvert un truc sympa qui rend ce problème beaucoup plus facile. Ce n'est pas impossible sans cette astuce et ce n'est pas banal non plus mais ça aide. J'ai eu beaucoup de plaisir à découvrir cela, donc je vais le laisser dans un spoiler ci-dessous.
L'inverse et l'ajout répétés atteindront toujours un multiple de 11 en 6 itérations ou moins. S'il n'atteint pas d'amorce avant d'avoir atteint un multiple de 11, il n'atteindra jamais d'amorce.