No estoy seguro de si esto es sólo un subconjunto de ¿Qué números enteros pueden expresarse como suma de cuadrados de dos números enteros coprimos? que a su vez señala http://en.wikipedia.org/wiki/Brahmagupta%E2%80%93Fibonacci_identity pero si es así, no lo veo.
Básicamente: mirando a los números entre 0 y 1000, si (pero no si) n es un cuadrado, entonces el enésimo número triangular (es decir $$\frac{n(n+1)}{2}$$ ) puede expresarse como la suma de dos cuadrados perfectos . ¿Se cumple esto para todos los cuadrados, y puede alguien indicarme por qué es así? (Por si sirve de algo, soy ingeniero pero no he tocado temas de teoría de números desde la universidad).
(También vio Demuestra que hay infinitos números naturales $n$ , de tal manera que $n(n+1)$ puede expresarse como suma de dos cuadrados positivos de dos maneras distintas. lo que demuestra que hay infinitos para los similares $n(n+1)$ caso pero no que todas las plazas funcionen a no ser que se me haya escapado algún aspecto)
(Enfoque de fuerza bruta para comprobar los números, porque la fuerza bruta siempre funciona)
import math
maxsquare = 1001
squares = [i*i for i in xrange(maxsquare)]
for j in xrange(int(math.sqrt(maxsquare))):
i = j * j
n = i * (i+1) / 2
for s in squares:
f = n - s
if f in squares:
print "%d^2 + %d^2 = %d * %d+1 / 2" % (int(math.sqrt(f)),int(math.sqrt(s)),i,i)
break
else:
print "Could not find anything for i = %d" % i