Mathématiques en seconde générale et technologique – Algorithmes

Test de primalité

Déterminer si un entier naturel est premier.
def est_premier(a) :
    if a == 0 or a == 1 :
        return False
    if a == 2 :
        return True
    b = 2
    while b ** 2 <= a :
        if a % b == 0 :
            return False
        b += 1
    return True

def run_mersenne(n) :
    a = 2 ** n - 1
    print("M_{} = {} {} premier."
              .format(n, a, "est" if est_premier(a) else "n'est pas"))

for n in range(20) :
    run_mersenne(n)
M_0 = 0 n'est pas premier.
M_1 = 1 n'est pas premier.
M_2 = 3 est premier.
M_3 = 7 est premier.
M_4 = 15 n'est pas premier.
M_5 = 31 est premier.
M_6 = 63 n'est pas premier.
M_7 = 127 est premier.
M_8 = 255 n'est pas premier.
M_9 = 511 n'est pas premier.
M_10 = 1023 n'est pas premier.
M_11 = 2047 n'est pas premier.
M_12 = 4095 n'est pas premier.
M_13 = 8191 est premier.
M_14 = 16383 n'est pas premier.
M_15 = 32767 n'est pas premier.
M_16 = 65535 n'est pas premier.
M_17 = 131071 est premier.
M_18 = 262143 n'est pas premier.
M_19 = 524287 est premier.
Lionel Avon