#Q2 def bonne_annee() -> None: for k in range(10, 0, -1): print(k) print("Bonne année !") bonne_annee() #Q3 def somme_des_carres(n : int) -> int : s = 0 for k in range(n + 1) : s = s + k ** 2 return s print(somme_des_carres(10)) #Q4 #1 def factorielle(n : int) -> int : """renvoie n!""" f = 1 for k in range(1, n + 1): f = f * k return f #2 for k in range(11) : print(k, "! =", factorielle(k)) #3 def combinaison(k : int, n : int) -> int: """renvoie k parmi n""" assert 0 <= k <= n return factorielle(n)//factorielle(k)//factorielle(n - k) #4 print(combinaison(6, 8)) #5 s = 0 for k in range(6) : s = s + combinaison(k, 5) * 3 ** k print(s) #Q5 #1 def est_premier(n : int) -> bool: """ renvoie True si n est premier et False sinon""" if n < 2: return False premier = True for k in range(2, n) : if n % k == 0: premier = False return premier #2 et 3 c = 0 for k in range(101) : if est_premier(k) : print(k) c = c + 1 print("nb de nombre premier <= 100 :", c) #4 def prochain_premier(n : int) -> int : """renvoie le plus petit premier > n""" k = n + 1 while not est_premier(k): k = k + 1 return k print(prochain_premier(103)) #5 for n in range(4, 101, 2) : k = 2 trouve = False while not trouve: if est_premier(n - k) : trouve = True else: k = prochain_premier(k) print(n, "=", k, "+", n - k)