syracuse

Nombres - Exercice 1

Soit un nombre entier n supérieur ou égal à 1 :

  • s'il est pair, on le divise par 2 ;
  • s'il est impair, on le multiplie par 3 et on ajoute 1.
Puis on recommence ces étapes avec le nouvel entier n ainsi obtenu, jusqu’à ce que l'on obtienne la valeur 1.
On admet que, quel que soit l'entier n choisi au départ, on finit toujours par rencontrer 1.
Écrire une fonction calcul prenant en paramètres un entier n strictement positif et qui renvoie la liste des valeurs successives de n jusqu’à atteindre 1.
Exemple : calcul(7) renvoie [7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1].

Indication

La boucle conditionnelle while est particulièrement bien adaptée à cette situation où il faut compléter une liste tant que l'on n'a pas obtenu le nombre entier 1.