Rappel de l'algorithme de Lucas-Lehmer

On considère un entier p>2, et le nombre de Mersenne M=2p-1; on voudrait savoir si ce nombre est premier. Si on essaye la divisibilité par les nombres impairs allant jusqu'à √M∼2p/2, pour de grandes valeurs de p, on prend un temps tellement long qu'il devient impossible de prouver la primalité de M en un temps raisonnable (environ 2p/4 divisions à mener). L'algorithme de Lucas-Lehmer (mis au point par Édouard Lucas à la fin du XIXe siècle, et amélioré par Derrick Lehmer dans les années 1930) consiste à faire les calculs suivants:

Si, au bout de p-1 itérations de ce programme de calcul, on n'arrive toujours pas à 0 (il reste des pions sur l'échiquier) alors 2p-1 est composé: Il possède un diviseur que l'algorithme de Lucas-Lehmer ne fournit pas, mais on sait que M n'est pas un nombre premier. Sinon, on a réussi avec p-1 calculs seulement, à prouver que M est premier.

Cet algorithme devient intéressant dès que 2p/4 dépasse p-1, soit p=17. De plus, il s'implémente bien en binaire et est donc très utilisé pour tester la primalité de grands nombres de Mersenne.

Résultats obtenus

Pour p petit

Records établis avec l'algorithme de Lucas-Lehmer