La congettura (probabilmente vera ma non ancora dimostrata) afferma che se si applica ripetutamente la formula

si giunge sempre al valore 1, indipendentemente dal valore di partenza (Wikipedia: Congettura di Collatz).
Ecco la sequenza che comincia da 17
n | Pari/Dispari | Calcolo |
17 | dispari | 3*17+1 |
---|---|---|
52 | pari | 52/2 |
26 | pari | 26/2 |
13 | dispari | 3*13+1 |
40 | pari | 40/2 |
20 | pari | 20/2 |
10 | pari | 10/2 |
5 | dispari | 3*5+1 |
16 | pari | 16/2 |
8 | pari | 8/2 |
4 | pari | 4/2 |
2 | pari | 2/2 |
1 | STOP |
In tutti i casi quando si arriva al valore 1 si interrompe l’esecuzione, altrimenti la sequenza continuerebbe per sempre come 4 – 2 – 1 – 4 – 2 – 1 – …
Program Collatz; Var n: LongInt; Begin ReadLn(n); Repeat If(n mod 2 = 0) Then n:=n Div 2 Else n:=3*n+1; Write(n, ' '); Until(n = 1); ReadLn; End.
Il ciclo Repeat...Until ripete l’esecuzione se l’espressione logica è falsa.