Je lisais CLRS et il a demandé de montrer que si est un premier de la forme et était un résidu quadratique, puis est une racine carrée (on peut aussi facilement montrer que est une racine carrée).
Je me demandais si en utilisant le fait précédent et aussi que nous savions que nous avions un certain nombre de la forme (pas nécessairement premier), alors il y a peut-être un test de primalité différent pour (tout?) en utilisant la fonction racine carrée (c.-à-d. ).
Donc, l'algorithme que je pensais était le suivant:
Choisissez un résidu quadratique (QR) (on peut facilement le faire en vérifiant si est ). Une fois que nous avons un QR, calculons et vérifions si est égal à . Si c'est vrai, alors nous concluons que est premier. Sinon, nous choisissons un autre QR et répétons l'algorithme. On peut répéter cet algorithme fois. Si après fois il n'y a pas de succès, alors conclure que le nombre est composite.
J'ai principalement des intuitions sur pourquoi c'est correct mais pas une preuve formelle. Du premier fait que est une racine carrée lorsque est premier, cela doit signifier que x_a ^ 2 \ equiv a \ pmod p . Par conséquent, si a est un QR, cette vérification passera (la moitié du temps, nous choisirons un QR, de sorte que nous choisissons probablement un non QR n'est que de 1/2).
Toutefois, si est composite, il semble que nous avons aucune garantie que . Donc, s'il ne tient pas, nous sommes sûrs que ce n'est pas le premier. Mais s'il tient, alors si son premier nous avons raison, mais si son composite, nous pourrions avoir tort? Fondamentalement, est-il possible d'utiliser la fonction SQRT lorsque pour décider si est premier ou non?
J'ai aussi pensé à un autre algorithme qui méritait sa propre question: est-ce que calculer une racine carrée d'un nombre et avoir plus de 2 racines est un moyen fiable de décider de la primalité?