Estaba leyendo CLRS y me pidió que mostrara que si es un primo de la forma y era un residuo cuadrático, entonces es una raíz cuadrada (también se puede mostrar fácilmente que es una raíz cuadrada).
Me preguntaba si usar el hecho anterior y también que sabíamos que teníamos un número de la forma (no necesariamente primo), entonces tal vez hay una prueba de primalidad diferente para (¿alguna?) usando la función de raíz cuadrada (es decir, ).
Entonces el algoritmo que pensé era el siguiente:
Elija un Residuo cuadrático (QR) (se puede hacer fácilmente al verificar si a ^ {\ frac {p-1} {2}} \ equiv 1 \ pmod p se mantiene). Una vez que tengamos un QR, calcule a ^ {k + 1} = x_a y verifique si x_a ^ 2 es igual a a . Si es cierto, entonces concluimos que a es primo. De lo contrario, elegimos un QR diferente a '\ in \ mathbb {Z} ^ * _ N y repetimos el algoritmo. Uno puede repetir este algoritmo k veces. Si después de k veces no hay éxito, concluya que el número es compuesto.
Tengo principalmente intuiciones sobre por qué es correcto pero no una prueba formal. Del primer hecho de que es una raíz cuadrada cuando es primo, debe significar que . Por lo tanto, si es un QR, entonces ese cheque pasará (la mitad del tiempo elegiremos un QR, por lo que probablemente elijamos un QR que no sea solo 1/2)
Sin embargo, si es compuesto, parece que tenemos ninguna garantía de que . Entonces, si no se mantiene, estamos seguros de que no es primo. Pero si se mantiene, entonces si es primo, tenemos razón, pero si es compuesto, podríamos estar equivocados Básicamente, ¿es posible usar la función SQRT cuando para decidir si es primo o no?
También pensé en otro algoritmo que merecía su propia pregunta: ¿calcular la raíz cuadrada de un número y tener más de 2 raíces es una forma confiable de decidir la primalidad?