题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
思路:
1、设这个数为x,由题目描述可得:
x+100=n2x+100+168=m2
由此可得:
m2−n2=168(n−m)(n+m)=168
设 m = n+j
可得:
(n+j)2−n2=168j2+2nj=168
由上面可以看到,1<= j <= 12
所以,
n=168−j22j=84j+j2
因此, 13 <= n <= 84
# 先来求解j的范围
j=1
while j**2 +2*j <=168:
j += 1
all_m=[]
all_n=[]
all_x=[]
for j in range(1,j+1):
n = 84/j - j/2
if int(n) == n:
x = n**2 -100
all_x.append(int(x))
all_n.append(int(n))
all_m.append(int(n)+j)
print(all_x)
print(all_m)
print(all_n)
[1581, 261, 21, -99]
[43, 23, 17, 13]
[41, 19, 11, 1]