Une propriété des nombres naturels.


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.


Page précédente.

Page d'accueil.