# 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))