print(" Encontrar los números impares que son la suma de 2 cuadrados ")
print()
print("Introduzca el rango ")
rang1 = int(input("Desde: "))
rang2 = int(input("Hasta: "))
valor1 = rang1
print()
cuenta_impares = 0
#num = var1^2 + var2^2
#se despeja var2^2 = num - var1^2
#valor = var2^2
while rang1 <= rang2:
contador = 0
num = rang1
var1 = 1
valor = 0
while valor>=0 :
valor = num - var1*var1
if valor > 0:
var2 = valor**(1/2) # se halla la variable 2
redondeo = round(var2) # se redondea la variable 2
diferencia = var2 - redondeo
if diferencia == 0 :
contador += 1
factor1 = var1 # factor 1 encontrado
factor2 = redondeo # factor 2 encontrado
numero = factor1**2 + factor2**2 # compare con num = var1^2 + var2^2
var1 += 1
if contador > 0 and num%2!=0: # no interesan los números pares
cuenta_impares +=1
print("%d resulta de (%d)²+(%d)²"%(numero,factor1,factor2))
rang1 += 1
print()
print("En el rango (%d,%d)se ha encontrado %d números"%(valor1,rang2,cuenta_impares))