Exercice 72
Ecrire un programme en python sous forme de fonction qui prends en argument un entier n et qui retourne la liste des tuples (p , q) formés des entiers p et q vérifiant:
- p et q sont deux diviseurs de n
- p + q est premier.
Exemple si n = 10 , l'algorithme renvoie la liste: [(1, 1), (1, 2), (2, 1), (2, 5), (5, 2)]
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 |
# coding: utf-8 # fonction qui teste la primalité d'un nombre def testPrim(n): #nombre des diviseurs de l'entier n number_div = 0 for i in range(1,n+1): if n%i == 0: number_div = number_div + 1 if number_div == 2: return True else: return False # fonction qui determine la liste des couples (p,q) def list_div_couple(n): # initialisation de la liste des diviseurs list_div = [] for p in range(1 , n): for q in range(1 , n): # on teste la primalité de p + q et la divisibilité de n par p et q if testPrim(p + q) and n%p == 0 and n%q == 0: list_div.append((p,q)) return list_div # exemple n = 18 print(list_div_couple(n)) # affiche: [(1, 1), (1, 2), (1, 6), (2, 1), (2, 3), (2, 9), (3, 2), (6, 1), (9, 2)] |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 72: liste des couples dont la somme est un nombre premier”