Uno puede calcular rápidamente una representación de un primer $\rm\:p\equiv 1\ (mod\ 4)\:$ como una suma de dos cuadrados, mediante el empleo de la distancia Euclídea MCD algoritmo en $\rm\mathbb Z[\:i\:]\:$ y un algoritmo para el cálculo de raíces cuadradas $\rm\:(mod\ p)\:$.
TEOREMA de $\ $ Deje que $\rm\ \: c = \sqrt{-1}\ \:(mod\ p)\ $ y $\rm\ gcd(p,\:i-c)\: = \: a+b\:i\ $.$\ $ Entonces $\rm\ p = a^2 + b^2\:$.
Prueba $\ $ vamos a mostrar: $\:$(1)$\ $ Representa $\rm\ p\:$ como una suma de cuadrados, es equivalente a encontrar una adecuada división de $\rm\: p = \alpha\:\beta\ $ $\rm\: \mathbb Z[\:i\:]\:$. $\ $(2)$\ $ Desde $\rm\: \mathbb Z[\:i\:]\:$ tiene un algoritmo de Euclides, una adecuada separación de los $\rm\ p\:$ puede ser calculado por el MCD con una adecuada separación de algún múltiplo de $\rm\: p\ $. (3)$\ \:$ Una adecuada separación de algún múltiplo de $\rm\ p\:$ surge por la factorización de $\rm\ \: x^2+1\ \ (mod\ p\:)\:$,$\ $ es decir,$\ $ por computación $\rm\ \ \sqrt{-1}\ \ (mod\ p\:)\:$. $\:$ A continuación están las pruebas.
(1) $\:$ Si $\rm\:\alpha|p\ $ correctamente, entonces, la conjugación, $\rm\:\alpha|p\ $ correctamente. La multiplicación de ellos produce $\rm\:\alpha\:\alpha|p^2\:$ correctamente en $\:\mathbb Z\:$. Pero en $\rm\mathbb{Z}\:$ el apropiado factor$a>0$ de $\rm\:p^2\:$ es $\rm\ p\:$, por lo tanto $\rm\: p = \alpha\:\alpha' = (a+b\:i)(a-b\:i) = a^2 + b^2\:$.
(2) $\ $ Si $\rm\ p\ \gamma \:=\: \alpha\:\beta\ $ y $\rm\p\:$ no dividir $\rm\:\alpha\:$ ni $\rm\:\beta\:$,$\ $ $\rm\: mcd(\alpha,p)\:$ es $\:$ apropiada$\ $ factor de $\rm\:p\ $.
Otro de $\rm\ gcd(\alpha,p) = p\:$ o $1$. Si el mcd es de $\rm p$ entonces $\rm\ p\:|\:\alpha\:$ contra la hipótesis. De lo contrario, si $\rm\ gcd(\alpha,p)=1\ $ por Euclides del Lexema, $\rm\ \alpha\:|\:p\:\gamma \ \Rightarrow\ \alpha\:|\:\gamma\:$,$\ $ entonces $\rm\ \gamma\alpha = \beta/p\ \Rightarrow\ p\:|\:\beta\:$,$\ $ nuevo contra la hipótesis. Nota: por lo general, en los anillos, GCDs única hasta la unidad de múltiplos. Aquí las unidades son $\rm\ i^n = \pm 1,\:\pm i\:$.
(3) $\rm\ \ x^2 + 1 \ =\ (x-c)\:(x+c) + p\ f(x)\ $ $\rm\mathbb\ Z[x]\ \: \Rightarrow\: -p\ f(i)\ =\ (i-c)\:(i+c)\ $ $\rm\mathbb\ Z[\:i\:]\ \ $ evaluación $\rm\: x = i\:$. Esta división es adecuado para dividir $\rm\p\:$ por (2) desde $\rm\p\:$ no dividen $\rm\: i\pm c\ \:$ en $\rm\ \: Z[\:i\:]\:$.
COMENTARIO de $\ $ Hay muchas variaciones en el algoritmo de Euclides en $\rm\mathbb \ Z[\:i\:]\ $ que se emplean en la práctica, por ejemplo, el empleo de fracciones continuas, la formas cuadráticas binarias, etc. Además, también hay al menos un par de algoritmos para calcular sqrts $\rm\:(mod\ p)\:$, por ejemplo mediante la factorización de polinomios $\rm\:(mod\ p)\:$, por curvas elípticas (Schoof), y el algoritmo de Tonelli y los Mangos. Para mucha más información, véase Henri Cohen del libro "Un curso computacional de la teoría algebraica de números". Aquí es un extracto de la hermosa algoritmo de Cornacchia: