Si tiene un algoritmo de factorización rápido (más rápido que [math] O (\ sqrt {n}) [/ math]), puede utilizar algunas matemáticas para obtener una respuesta más rápida. Usando algunas propiedades encontradas por Fermat, sabemos que cada primo [math] p \ equiv 1 [/ math] mod 4 puede expresarse como la suma de dos cuadrados exactamente de una manera. La solución particular se puede resolver en tiempo logarítmico (ver página en www.emis.de).
Luego, para resolver cualquier número entero arbitrario, solo tenemos que descomponerlo en factores primos y luego fusionar soluciones usando la identidad [matemáticas] (a ^ 2 + b ^ 2) (c ^ 2 + d ^ 2) = (ac + bd) ^ 2 + (ad-bc) ^ 2 [/ matemáticas]. Por supuesto, también necesitamos verificar el poder de 2 y los poderes de los primos de la forma [math] p \ equiv 3 [/ math] mod 4. Si alguno de esos poderes es impar, no hay soluciones. Por ejemplo, si la factorización prima tiene una potencia impar de 2, es claramente insoluble (para x <y).
Los factores extra constantes y la complejidad de este enfoque son probablemente excesivos para la mayoría de los propósitos prácticos, pero no obstante es interesante.
Fuentes: Triples pitagóricos, enumerando formas de descomponer un número entero en la suma de dos cuadrados
- ¿Cómo podría mostrar que para un conjunto finito A de cardinalidad n, la cardinalidad de P (A) es [matemática] 2 ^ n [/ matemática]?
- ¿Cómo se pueden resolver los problemas relacionados con el trabajo y el tiempo que conlleva la aptitud?
- Los gráficos que tienen un número impar de coincidencias perfectas corresponden a matrices invertibles. ¿Es esto cierto? ¿Cómo?
- ¿Por qué el producto de tres enteros consecutivos es completamente divisible por 2?
- Cómo encontrar el volumen de este sólido hiperbólico de revolución en función de su altura, y viceversa