
"""
Exercice 1:
"""
def puissance_iterative(x, n):
    resultat = 1
    for i in range(n):
        resultat = resultat * x
    return resultat


print("ex1 ",puissance_iterative(2, 10))
print("ex1 ",puissance_iterative(3, 4))
print("ex1 ",puissance_iterative(3, 1))
print("ex1 ",puissance_iterative(10000000, 0))

"""
Exercice 2:
"""

def puissance_recursive(x, n):
    if n == 0:
        return 1
    else:
        return x * puissance_recursive(x, n-1)

print("ex2 ",puissance_recursive(2, 10))
print("ex2 ",puissance_recursive(3, 4))
print("ex2 ",puissance_recursive(3, 1))
print("ex2 ",puissance_recursive(10000000, 0))

"""
Exercice 3:
"""

def fibonacci(n) :
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

for n in range(16):
    print("ex3 ",fibonacci(n))

"""
Exercice 4:
"""

def Syracure(u_n):
    print("Syracure u_n = ", u_n)
    if u_n == 1:
        return
    if u_n%2 == 0:
        return Syracure(u_n//2)
    else:
        return Syracure(3*u_n + 1)

Syracure(15)

"""
Exercice 5:
"""

def boucle(i,k):
    if i <= k:
        print(i)
        boucle(i+1,k)

boucle(5,6)



