Bonjour tout le monde,
J'ai besoin d'un petit coup de main sur la programmation de la conjecture de Syracuse.
Le problème est simple, on se donne un entier plus grand que 1:
- S'il est pair, on le divise par deux
- S'il est impair, on le multiplie par 3 et on lui ajoute 1
On "conjecture" que l'on finit toujours par trouver la valeur 1

Voici mon programme:
Je dois donner les entiers de mon entier définit jusqu'à ce qu'il atteigne la valeur1, sous forme d'une liste.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
def syrac(n):
 
    listsyrac=list()
    if (type(n) != type(1) or n<1):
        return None 
 
    while n!=1:
        if n%2 == 0:
            n=n/2
        else:
          n=(n*3)+1
        print(n)
C'est dans l'afichage de la liste que je bloque .. Je ne sais pas comment ajouter les valeurs de n au fur et à mesure avec uen boucle While. Avec une boucle For j'utilise append mais la je ne sais pas comment faire l'analogie ..
Si quelqu'un pouvait m'éclairer un peu ? Merci.