Solution Exercice 34: liste des nombres de sophie german en python

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

Leave a Reply