# CORRECTION DS ## Exercice 1 ### Question 1 ```python = def armstrong(nombre): liste_chiffres = list(str(nombre)) somme = 0 for chiffre in liste_chiffres: somme = somme + int(chiffre)**3 if somme == nombre : return True else : return False print(armstrong(153)) ``` ## Question 2 La ligne 2 garantit la transformation du nombre pris en une entrée composée de ses chiffres. L’utilisation de str() permet de passer un “iterable”/structure de données linéaires à la fonction list(). ## Question 3 ```python = print(armstrong(153)) lst_nb = [2000, 124, 153] for i in lst_nb: print(armstrong(i)) ``` ### Question 4 ```python = def armstrong(nombre): chiffres = str(nombre) liste_chiffres = [] for i in chiffres: liste_chiffres.append(int(i)) somme = 0 for chiffre in liste_chiffres: somme += chiffre**3 if somme == nombre : return True else : return False ``` ## Exercice 2 ### Question 1 Les opérateurs de comparaison et arithmétiques nécessaires sont : ```python = == % ``` Exemples : ```python = 4 == 5 renvoie Faux (4 n’est pas égal à 5) 6%2 renvoie 0 (reste de la division euclidienne de 6 par 2) ``` ### Question 2 ```python= # version 1 def diviseurs(nombre): liste_diviseurs = [] for i in range(1,nombre+1,1): if nombre%i == 0 : liste_diviseurs.append(i) #liste_diviseurs += [i] return liste_diviseurs # test print(diviseurs(8)) # version 2 def diviseurs2(nombre): liste_diviseurs = [] for i in range(1,round(nombre**(1/2))+1,1): if nombre%i == 0 : liste_diviseurs.append(i) liste_diviseurs.append(int(nombre/i)) #liste_diviseurs += [i, nombre/i] liste_diviseurs.sort() return liste_diviseurs # test print(diviseurs2(8)) ``` # PGCD # version 1 def pgcd(nb1, nb2): diviseurs1 = diviseurs(nb1) diviseurs2 = diviseurs(nb2) liste_diviseurs_communs = [] for i in diviseurs1 : for j in diviseurs2 : if i == j : liste_diviseurs_communs.append(i) return max(liste_diviseurs_communs) print(pgcd(15,21)) # version 2 def pgcd2(nb1, nb2): diviseurs1 = diviseurs(nb1) diviseurs2 = diviseurs(nb2) liste_diviseurs_communs = [] for i in diviseurs1: if i in diviseurs2: liste_diviseurs_communs.append(i) return max(liste_diviseurs_communs) print(pgcd2(15,21))