Scrivo un numero naturale N1 qualunque, quindi sommo i quadrati delle sue cifre. Ottengo un numero N2.
Sommo i quadrati delle cifre di N2. Ottengo un numero N3. E così via.
Provate ad eseguire a mano qualche prova. Poi provate ad usare questo algortimo qui presentato per R nel caso in cui il numero di partenza sia 2.
n <- 2
N <- toString(n); n <- 0; for(i in 1:nchar(N)) n <- n+strtoi(substr(N,i,i))^2; n
# 4
N <- toString(n); n <- 0; for(i in 1:nchar(N)) n <- n+strtoi(substr(N,i,i))^2; n
# 16
...

Se volete usare un altro linguaggio di programmazione, provate a tradurlo in esso.
Spiegate perché questo algortimo traduce il procedimento precedente.
Verificate su molti esempi (ad esempio 2, 10, 13, 1300, 27, 68, 99, …) che le uscite prima o poi si stabilizzano su 1 o su una sequenza finita di cifre che si ripete ciclicamente.
Individuate qual è questa sequenza di cifre.