Exercice 34
On dit qu'un entier p est un nombre premier de sophie german, si p est un nombre premier et 2p+1 l'est aussi. Exemple: p = 11 est un nombre premier de sophie german car 2p + 1 = 23 est aussi premier et q = 13 est un nombre premier qui n'est pas de sophie german car 2q + 1 = 27 qui n'est pas premier.
Solution
# fonction qui teste la primalité d'un nombre def test_prim(n): # initialisation du nombr de diviseurs de n d = 0 for k in range(2, n): if n%k == 0: d = d + 1 # un nombre est premier s'il ne possède aucun diviseur strict 1 < K < n if d > 0 : return False else: return True print(test_prim(n)) # output : True print(test_prim(m)) # output : False # Fonction qui détermine la liste des nombres premiers de sophie german def sophie(n): # initialisation de la liste des nombres premiers de sophie german list_german = [] for k in range(2, n+1): if test_prim(k) and test_prim(2*k+1): list_german.append(k) return list_german # Exemple n = 200 print(sophie(n)) # output: [2, 3, 5, 11, 23, 29, 41, 53, 83, 89, 113, 131, 173, 179, 191]
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 34: liste des nombres de sophie german en python”