- Test de primalité de Lucas-Lehmer
-
Le test de primalité de Lucas-Lehmer est une méthode pour tester la primalité d'un nombre entier n pour lequel on suppose connaître les facteurs premiers de n-1.
S'il existe un a inférieur à n et plus grand que 1 tel que
et, pour tous les facteurs premiers q de n-1,
alors n est premier.
Si un tel nombre a ne peut pas être trouvé, alors n est un nombre composé.
Par exemple, prenons n=71, n-1=70=(2)(5)(7). Choisissons a=11 :
Ceci ne montre pas que l'ordre multiplicatif de 11 mod 71 est 70 parce qu'un certain facteur de 70 pourrait aussi convenir. Donc vérifions 70 divisé par ses facteurs premiers :
Donc, l'ordre multiplicatif de 11 mod 71 est bien 70, et ainsi 71 est premier.
Pour calculer rapidement ces exponentiations, on utilise la méthode de l'exponentiation par carrés.
La raison pour laquelle cet algorithme fonctionne est la suivante : si a survit à la première étape de l'algorithme, nous pouvons déduire que a et n sont premiers entre eux. Si a survit aussi à la deuxième étape, alors l'ordre de a dans le groupe (Z/nZ)* est égal à n-1, ce qui veut dire que l'ordre de ce groupe est n-1, impliquant le fait que n est premier. Réciproquement, si n est premier, alors il existe une racine primitive modulo n, et n'importe quelle racine primitive de ce genre survivra aux deux étapes de l'algorithme.
Voir aussi
Wikimedia Foundation. 2010.