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.

È facile verificare che le uscite prima o poi si stabilizzano su 1, 1, 1, … o su 145, 42, 20, 4, 16, 37, 58, 89, 145, …
Nel caso di "n = 2" ho: 4, 16, 37, 58, 89, 145, 42, 20, 4, 16,...
Nel caso di "n = 68" ho: 100, 1, 1, ...
La cosa è dimostrabile, ma la dimostrazione non è facile. Chi è interessato può vederla qui, tratta dal libro "Cento problemi di matematica elementare" di Hugo Steinhaus.
Modificando il programmino si vede che si hanno esiti simili (quali?) se invece dei quadrati si considerano i cubi o le potenze k-esime per qualunque k intero maggiore di 3.

Posso fare i calcoli anche con questa calcolatrice online. Ecco gli esiti, dal basso in alto, nel caso di 4 (16, 37, 58, 89, 145, 42, 20, 4, 16, …):

sum=4
4, 0
 - - - - -
data^2:
4, 0
sum=20
16, 4
 - - - - -
data^2:
16, 4
sum=42
1, 16, 25
 - - - - -
data^2:
1, 16, 25
sum=145
64, 81
 - - - - -
data^2:
64, 81
sum=89
25, 64
 - - - - -
data^2:
25, 64
sum=58
9, 49
 - - - - -
data^2:
9, 49
sum=37
1, 36
 - - - - -
data^2:
1, 36
sum=16
16
 - - - - -
data^2:
16
 - - - - -
4
sommo i quadrati delle cifre, e cosi' via