"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre l 0 • Travaux pratiques
224
b) Les questions
1) Quel est le rôle de la fonction li(n) suivante ?
Fonction li(n: entier) : liste
Rôle: ............................................... .
Variables locales : L (liste), k (entier)
Début
L ~ []
Pour k de l à n Faire
Si n%k==0 Alors
1 Ajouter k à L
FinSi
Fin Pour
Retourner(L)
Fin Fonction
2) Écrire une fonction booléenne estparfait(n) qui renvoie VRAI si le nombre entier
n est parfait et FAUX sinon.
Par exemple, on devra avoir estparfait(6) =VRAI et estparfait(7) =FAUX.
3) Écrire une fonction sominvdiv(n) qui renvoie la somme des inverses des diviseurs
d'un nombre entier n non nul.
Par exemple, puisque les diviseurs de 10 sont 1, 2, 5 et 10 on devra avoir sorninvdiv(lO)= 1/1+1/2 + 1/5 + 1/10 = 1+0,5 + 0,2 + 0,1=1,8.
4) Écrire un algorithme déterminant et affichant le seul nombre parfait de trois
chiffres puis la somme des inverses des diviseurs de ce nombre. Cet algorithme
devra faire appel aux fonctions précédentes. Implémenter sous Python cet algorithme puis exécuter le programme.
Corrigé
a) Algorithme
Nom de l'algorithme Nombres_parfaits
Rôle : Détermination du nombre parfait de 3 chiffres et de la somme des
inverses de ses diviseurs
Entrée : --------------Sorties : Affichage du nombre parfait de 3 chiffres et de la somme cherchée
Variable globale : nb (entier)
Fonctions
Fonction li(n:entier) : liste
Rôle : détermine la liste des diviseurs de n
Variables locales : L (liste), k (entier)
Début
1
L ~ []
Précédent

- 232/302

Suivant