Exercice 12 Ecrire un programme en langage Python qui prend en entrée un nombre n >= 100 et qui renvoie la liste des divieurs de n de la forme d = pq avec p+q est premier. Exemple pour n = 100 l'algorithme renvoie la liste [20, 25, 50]. 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
|
# fonction qui teste si un nombre n est premier def testPrim(n): # initialisation du nombre des diviseurs divisors = 2 # 1 et n if n == 1: return False else: for i in range(2, n): if n % i == 0: divisors = divisors + 1 return divisors == 2 # Fonction qui détermine la liste des diviseurs recherchés def listDiv(n): # Initialisation de la liste recherchée list_div = [] for p in range(1, 10): for q in range(0, 10): d = p*10+q if testPrim(p+q) and n % d == 0: list_div.append(d) return list_div # Tester l'algorithme n = 100 print("liste recherchée : ", listDiv(n)) # output : liste recherchée : [20, 25, 50] |
Voir la liste des…