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
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.