Corrigé : Syracuse
  
    
    
  
  
  Fichier syracuse.py
def syracuse(x):
    if x % 2 == 0:
        return x / 2
    else:
        return 3 * x + 1
def suite(u_0):
    sortie = [u_0]
    u_n = u_0
    while u_n != 1:
        u_n = syracuse(u_n)
        sortie.append(u_n)
    return sortie
Fichier test_syracuse.py
from syracuse import syracuse, suite
def test_syracuse_pair():
    assert syracuse(2) == 1
def test_syracuse_impair():
    assert syracuse(1) == 4
def test_suite_u_0_1():
    assert suite(1) == [1]
def test_suite_u_0_5():
    assert suite(5) == [5, 16, 8, 4, 2, 1]
Fichier main.py
from syracuse import suite
sortie_utilisateur = input("Donnez un entier : ")
u_0 = int(sortie_utilisateur)
print("suite de Syracuse associée : ", suite(u_0))