Considera il numero 99999999. Quel numero è ovviamente un palindromo. Il fattore primo più grande di 99999999 è 137. Se dividi 99999999 per 137, ottieni 729927. Questo numero è anche un palindromo.
Il fattore primo più grande di 729927 è 101. 729927/101 = 7227 che è di nuovo un palindromo.
Il fattore primo più grande di 7227 è 73. 7227/73 = 99 che è di nuovo un palindromo.
Dividendo ulteriormente per il fattore primo più grande, si ottengono 9, 3 e infine 1, che, essendo numeri a una cifra, sono anche palindromi. Poiché 1 non ha fattori primi, la procedura termina qui.
Ora generalizzando questa osservazione, definisco un super-palindromo come un palindromo che è 1, o che dà un altro super-palindromo se diviso per il suo più grande fattore primo.
Crediti: /math/200835/are-there-infinitely-many-super-palindromes
Dato un numero N , determinare se si tratta di un super palindromo o meno e stampare di conseguenza un valore di verità o falsità.
Il tuo programma dovrebbe stampare un valore veritiero per questi input:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Il tuo programma dovrebbe stampare un valore false per questi input:
323
432
555
583
585
646
642
696
777
969
989
2112
3553
4554
5242
5225
5445
8080
8118
9988
Ricorda, questo è code-golf , quindi vince il codice con il minor numero di byte.
N
sarà sempre un palindromo con cui cominciare?