Correction TP I
Exercice 0
A
def divisible(nbr):
for i in range(0, nbr):
if(i % 3 == 0):
if(i % 5 == 0):
print("Trois et Cinq")
else:
print("Trois")
elif(i % 5 == 0):
print("cinq")
else:
print(i)
divisible(101)
B
def fib_recursive(n):
lst = [0, 1]
for i in range(2, n):
lst.append(lst[i-1] + lst[i - 2])
return lst
print(fib_recursive(50))
Exercice 1
A
def fib_n(n):
m = n+1
fib_n = int(1 / 5**0.5 * (((1 + 5**0.5) / 2)**n - ((1 - 5**0.5) / 2)**n))
fib_m = int(1 / 5**0.5 * (((1 + 5**0.5) / 2)**m - ((1 - 5**0.5) / 2)**m))
print(n, fib_n)
print(m, fib_m)
def fib_get():
n = int(input("entrez un nombre n:"))
fib_n(n)
fib_get()
B
def fib_dico(n):
dico = {}
dico[0] = [0, 0]
dico[1] = [1, 1]
for i in range(2, n+1):
j = i + 1
fib_i = int(1 / 5**0.5 * (((1 + 5**0.5) / 2)**i - ((1 - 5**0.5) / 2)**i))
fib_j = int(1 / 5**0.5 * (((1 + 5**0.5) / 2)**j - ((1 - 5**0.5) / 2)**j))
dico[i] = [fib_i, fib_j / fib_i]
return dico
def fib_dico_get():
n = int(input("entrez un nombre n:"))
dic = fib_dico(n)
m = int(input("entrez un nombre m < n:"))
print(m, dic[m][0], dic[m][1])
fib_dico_get()