Un básico de refinamiento sería utilizar el hecho de que si $x^2\equiv y \pmod{p^N}$, entonces para cada a $N'<N$ también contamos $x^2\equiv y\pmod{p^{N'}}$. Usted podría asumir $y$ es coprime a $p$, ya que de lo contrario usted puede fácilmente sacar sus factores de $p$.
A continuación, puede proceder de la siguiente manera: Encontrar todas las soluciones $x$ a este mod $p$. A continuación, cada una de estas soluciones podrían levantar a $p$ cosas mod $p^2$ - así que usted puede encontrar las soluciones de mod $p^2$ comprobación de los. Entonces usted puede levantar de nuevo a $p^3$ y así sucesivamente - y, desde allí será como máximo de cuatro* las raíces cuadradas de mod $p^N$ (y sólo dos si $p$ es impar). Por lo tanto, usted sólo tendrá que comprobar por $4pN$ valores para que este método de trabajo - mucho mejor que la comprobación $p^N$ valores - pero espera, podemos hacerlo aún mejor!
Tenga en cuenta que la elevación real paso puede ser simplificado aún más: Si sabemos que $x^2\equiv y\pmod{p^N}$, entonces podemos intentar buscar algo de $z=x+p^Nc$ tal que $z^2\equiv y\pmod{p^{N+1}}$. De trabajo esto da $x^2+2p^Nc\equiv y\pmod{p^{N+1}}$, que es fácil de resolver para $c$ (o, si $p=2$, nos encontramos con que $c$ incluso no importa la mitad de nuestro anterior de las raíces cuadradas de elevación a dos nuevas raíces cuadradas, y la otra mitad no se levante a todos!!!!). Haciendo esto, una vez que calcule la raíz cuadrada mod $p$, básicamente consiste en limpiar la vela desde allí.
Como para realmente solucionar $x^2\equiv y\pmod{p}$, hay algunas maneras - por ejemplo, si $p=4k+3$, usted puede encontrar uno con Fermat poco teorema, pero parece que está muy interesante, en pequeños números primos (por ejemplo,$2$), donde no es difícil comprobar todos los posibles $x$.
(*Yo también debería explícitamente señalan que, por $k\geq 3$, hay cuatro soluciones a $x^2=1\pmod{2^k}$ - y, en consecuencia, cualquier número con una raíz cuadrada en realidad tiene cuatro raíces cuadradas las que se olvidó de $65$ mod $512$ se $\pm 223$, el cual puede ser encontrado mediante la adición de $256$ a sus raíces existentes, ya que la adición de $256$ no cambia la plaza de mod $512$.)