A mon tour :
La suite de Syracuse est définie ainsi :
- on part d'un entier ;
- s'il est pair, on le divise par 2 ;
sinon, on le multiplie par 3 et on ajoute 1 ;
- on recommence la même opération sur l'entier obtenu, et ainsi de suite ;
la suite s'arrête si on arrive à 1.
Par exemple, si on part de 10, on obtient successivement 10/2=5, puis 3*5+1=16, puis 16/2=8, puis 4, puis 2, puis 1.
On pense (mais personne ne sait le montrer...) qu'une telle suite se termine toujours par 1, et on appelle durée de vol le nombre d'opérations nécessaires pour y arriver. Par exemple, en partant de 10, on voit qu'il a fallu 6 opérations : la durée de vol de l'entier 10 est égal à 6.
La question posée est donc d'écrire un programme qui, un entier étant donné par l'utilisateur, calcule et affiche sa durée de vol.
La suite de Syracuse est définie ainsi :
- on part d'un entier ;
- s'il est pair, on le divise par 2 ;
sinon, on le multiplie par 3 et on ajoute 1 ;
- on recommence la même opération sur l'entier obtenu, et ainsi de suite ;
la suite s'arrête si on arrive à 1.
Par exemple, si on part de 10, on obtient successivement 10/2=5, puis 3*5+1=16, puis 16/2=8, puis 4, puis 2, puis 1.
On pense (mais personne ne sait le montrer...) qu'une telle suite se termine toujours par 1, et on appelle durée de vol le nombre d'opérations nécessaires pour y arriver. Par exemple, en partant de 10, on voit qu'il a fallu 6 opérations : la durée de vol de l'entier 10 est égal à 6.
La question posée est donc d'écrire un programme qui, un entier étant donné par l'utilisateur, calcule et affiche sa durée de vol.