Voici un petit algorithme qui n'a aucun utilité (pour l'instant en tout cas).
Il montre seulement une propriété des nombres naturels pour laquelle on
trouvera sûrement une application.
demander et lire un nombre N entier positif non nul
recommencer l'action suivante:
* si N est pair, il est divisé par 2
* si N est impair, il est multiplié par 3 et augmenté de 1
arrêter quand N vaut 1.
Exemple:
N = 26 devient 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
N = 7 devient 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Note: Il a été vérifié par ordinateur que tout nombre entier compris
entre 1 et 1.099.511.627.776 était ramené à 1 après un nombre fini
d'étapes. On attend toujours la découverte d'un nombre pour lequel
cette propriété ne serait pas vraie.
lire N
tant que NOT (N=1) faire
si N mod 2 = 0 alors N <-- N \2
sinon N <-- N * 3 + 1
fsi
ftant
PROGRAM Prop_Naturel;
VAR i, N : LONGINT;
BEGIN
FOR i:=1 TO MAXLONGINT DO
BEGIN
N:=i;
WRITE(N,#13);
WHILE NOT (N=1) DO
IF N MOD 2=0 THEN N:=N DIV 2
ELSE N:=N*3+1
END;
END.