#假设这个整数是i,i+100 = n2 ,i+100+168 =m2
#m2-n2=(m+n)(m-n)=168+100+i-100-i
#math库不支持复数类型,仅支持整数和浮点数运算
import math
for z in range(-100,10000):
x = int(math.sqrt(100+z)) #sqrt(x),返回x的平方根
y = int(math.sqrt(268+z))
if (x*x==(100+z))and (y*y==(z+268)):
print(z)
——如果有sqrt,则range不能有负数,因为不能对负数开方,此处有容易出错的地方,当z=-99时是可以得到整数的x.y。所以(-100,10000)是可以的;!!!但是(-10000,10000)就不可以,因为会有负数,sqrt不能对负数开方,
——所以这个公式并不是很完善,有优化的空间