Exercice 95 : Nombres distincts et diviseurs
Ecrire une fonction Python nommée list_div_distinct(). Cette fonction reçoit un entier n en paramètre et doit retourner la liste de ses diviseurs qui sont des nombres distincts (voir Exercice 79).
Un nombre est qualifié de distinct lorsque tous ses chiffres sont différents.
Exemple : 271 est distinct (2,7,1 sont différents), alors que 252 ne l'est pas (le chiffre 2 apparaît deux fois).
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 25 26 27 28 29 30 31 32 33 34 35 |
# Fonction qui test si un entier est distinct def is_distinct(n): """ Vérifie si un entier m est composé de chiffres tous distincts, sans utiliser str(). """ # initialiser l'ensemble des chiffres qui composent n chiffres_n = set() while n > 0: chiffre = n % 10 # Dernier chiffre if chiffre in chiffres_n: return False chiffres_n.add(chiffre) n = n // 10 # Enlever le dernier chiffre return True # Fonction qui retourne la liste des diviseurs distincts def list_div_distinct(n): """ Retourne la liste des diviseurs distincts de l'entier n. """ diviseurs = [] for i in range(1, n + 1): if n % i == 0: if is_distinct(i): diviseurs.append(i) return diviseurs # Tester l'algorithme print(list_div_distinct(271)) # [1, 271] print(list_div_distinct(96)) # [1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 96] |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/



