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
Acheter sur Très Facile !



1 thought on “Solution Exercice 34: liste des nombres de sophie german en python”