Exercice 61
Écrire un programme en Python qui demande à l'utilisateur de saisir cinq nombres entiers de son choix et de lui renvoyer un dictionnaire dont les clés sont les entiers saisis et dont les valeurs sont les listes des diviseurs des nombres saisis.
Exemple si l'utilisateur saisi les nombres : 14 , 7 , 8 , 6 , 13 le programme renvoie le dictionnaire:
|
1 |
d = {14 : [1, 2, 7, 14] , 7: [1,7] , 8: [1, 2, 4, 8] , 6: [1,3,6] , 13: [1,13] } |
Solution
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# coding: utf-8 # fonction qui détermine la liste des diviseurs d'un entier def listDiv(n): # initialisation de la liste des diviseur de n l = [] # parcourt des entiers 1 , 2 , 3 ,..., n for i in range(1, n+1): # si i est un diviseur de n on l'ajoute à la liste if n%i == 0: l.append(i) return l # récupération des nombres tapés dans une liste python typed_number = [] for i in range(0, 5): n = int(input("Tapez un nombre entier")) typed_number.append(n) # création du dictionnaire d = dict({}) for n in typed_number: d[n] = listDiv(n) print(d) |
Younes Derfoufi
CRMEF OUJDA
![[App intégrée] 2025 Upgraded Vidéoprojecteur 1920 * 1080P FHD 4K Mini Projecteur Portable Dual Contrôle avec Souris Android TV WiFi 6 BT5.2 180° Rotation Compatible avec HDMI/TV Stick/USB](https://www.tresfacile.net/wp-content/uploads/2025/12/Videoprojecteur-1920-1080P-FHD-4K-Mini-Projecteur-Portable-Dual-Control-250x236.png)


Bonjour,
Je l’ai fait légèrement différent du votre mais il fonctionne quand même, quand pensez vous ?
x = 0
dico = {}
while x < 5:
try:
nombre = int(input("entrez un nombre entier : "))
liste = []
for i in range(1, nombre+1):
if nombre%i == 0:
liste.append(i)
dico[nombre] = liste
x += 1
except:
print("La valeur entrée n'est pas un nombre entier !")
print(dico)
Cordialement.