Aller au contenu

Actualité

Le plus grand nombre premier connu compte 41 millions de chiffres

Le 12 octobre 2024, Luke Durant, un ancien ingénieur de 36 ans, a découvert le plus grand nombre premier connu : . Écrit en base 10, il compte 41 024 320 chiffres, soit plus de 16 millions de chiffres de plus que le précédent record, qui datait de 2018.

Ancien employé du fabricant de cartes graphiques Nvidia, Luke Durant a loué des milliers de processeurs graphiques (GPU) dans des centres de calcul du monde entier. C’est la première fois qu’un tel record est obtenu avec des GPU plutôt qu’avec des processeurs classiques.

Combien de chiffres, exactement ?

Inutile d’écrire le nombre pour compter ses chiffres : un entier s’écrit avec chiffres. Comme et ont le même nombre de chiffres (une puissance de 2 n’est jamais une puissance de 10), le calcul est immédiat :

Un nombre de Mersenne

Comme les records précédents, c’est un nombre de Mersenne, de la forme . Pour ces nombres, il existe un test de primalité particulièrement rapide, le test de Lucas-Lehmer, ce qui explique qu’ils trustent les records.

Ils portent le nom de Marin Mersenne (1588-1648), moine de l’ordre des Minimes et correspondant de Descartes, de Fermat et de Pascal, qui en publia en 1644 une liste… en partie erronée.

p

2

3

5

7

11

2^p − 1

3

7

31

127

2 047

Premier ?

oui

oui

oui

oui

non (23 × 89)

Le tableau le montre : un exposant premier ne suffit pas, puisque donne un nombre composé. En revanche, il est nécessaire : c’est l’objet de l’exercice suivant.

À vous : montrez que si n’est pas premier, alors ne l’est pas non plus. Indice : si , pensez à avec .

La solution

Si avec , posons . Alors , et l’identité

montre que divise . Comme , c’est un diviseur strict : le nombre n’est pas premier. Par exemple, est divisible par et par .

Le test de Lucas-Lehmer

Pour tester (avec p premier impair), on calcule une suite en ne gardant, à chaque étape, que le reste de la division par :

est premier si et seulement si . Pour , soit , la suite donne 4, 14, 67, 42, 111, 0 : le terme est nul, 127 est premier.

Le test tient en quelques lignes de Python :

def lucas_lehmer(p):
    m = 2**p - 1
    s = 4
    for _ in range(p - 2):
        s = (s * s - 2) % m
    return s == 0

premiers = [p for p in range(3, 130) if all(p % d for d in range(2, p))]
print([p for p in premiers if lucas_lehmer(p)])
# [3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127]

La même boucle, appliquée au nouveau record, demande plus de 136 millions d’élévations au carré de nombres de 41 millions de chiffres. C’est là qu’interviennent la multiplication rapide par transformée de Fourier et la puissance des processeurs graphiques.

Un lien avec les nombres parfaits

Un nombre est parfait s’il est égal à la somme de ses diviseurs autres que lui-même : 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14. Euclide a montré que si est premier, alors le nombre suivant est parfait :

Deux mille ans plus tard, Euler a prouvé que tous les nombres parfaits pairs sont de cette forme. Chaque nouveau nombre premier de Mersenne donne donc un nouveau nombre parfait. Quant aux nombres parfaits impairs, personne ne sait s’il en existe.

Chercher avec GIMPS

La découverte a été faite dans le cadre du projet de calcul collaboratif GIMPS, auquel n’importe qui peut prêter la puissance de son ordinateur.

Fondé en 1996 par George Woltman, le projet a trouvé les dix-huit derniers nombres premiers de Mersenne, dont celui-ci, le 52e connu. Le logiciel se télécharge sur mersenne.org.

L’Electronic Frontier Foundation promet 150 000 dollars à qui trouvera le premier nombre premier de 100 millions de chiffres. Avis aux amateurs : il reste de la marge.

← Toutes les actualités