Solution Exercice 72: algorithme python pour créer un dictionnaire contenant une liste d'entiers comme clés et des lits de leurs diviseurs comme valeurs

Exercice 72

Écrire un programme en Python qui demande à l’utilisateur de saisir dix 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 : 2 , 7 , 11 , 5 , 3 , 19 , 14 , 9 , 1 , 4 , le programme renvoie le dictionnaire:

d = {2 : [1,2] , 7: [1,7] , 14: [1,2,7,14] ,
     9: [1,3,9] , 11: [1,11] , 5: [1,5]  , 
     3: [1,3]  , 19: [1,19]  , 1: [1] , 
	 4: [1,2,4] }

Solution




# coding: utf-8
# créer une fonction qui détermine la liste des diviseurs pour un entier donné
def listDivisors(n):
    # Initialiser la liste des diviseurs de n 
    listDiv =[]
    # on parcourt la liste des entiers de  1 à n 
    # et on teste si i est un diviseur de n
    for i in range(1,n+1):
        if n%i == 0:
            listDiv.append(i)
    return listDiv

# Création d'un dictionnaire vide pour récupérer les entiers saisis
d = dict({})
for i in range(1 , 11):
    # demander à l'utilisateur de saisir un entier
    n = int(input("Enter value of integer n : " ))

    # on ajoute n et a list de divieurs au dictionnaire d
    d[n] = listDivisors(n)

# afficher le dictionnaire d
print("Le dictionnaire généré est : d = ", d)

# on teste l'algorithme
# pour les entiers saisis : 8, 12, 10, 6 , 3, 9, 22 , 11 , 17, 15
# Le dictionnaire généré est : d =  {8: [1, 2, 4, 8], 12: [1, 2, 3, 4, 6, 12], 10: [1, 2, 5, 10], 6: [1, 2, 3, 6], 3: [1, 3], 9: [1, 3, 9], 22: [1, 2, 11, 22], 11: [1, 11], 17: [1, 17], 15: [1, 3, 5, 15]}




 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply