题目3:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 解析: 完全平方数:如果一个正整数m是某一个整数x的平方,那么这个正整数m叫做完全平方数 设这个整数为x,根据题目:x+100=n^2,x+100+168=m^2 m^2-n^2=168,即(m+n)(m-n)=168 令m+n=i,m-n=j,i*j=168 则m=(i+j)/2,n=(i-j)/2,则i、j要么全是偶数,要么全是奇数 可得:i>j,j>=2,2<i<=84
import math
for i in range(2,85):
if 168 % i == 0: #先找出使i*j=168这个等式成立的整数i、j
j = 168 / i
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0:
n = (i - j) / 2
x = n ** 2 - 100
y1 = math.sqrt(x + 100)
z = math.sqrt(x + 268)
print('符合条件的整数是:%d,加100后的结果:%d,完全平方数是%d;再加168的结果是:%d,完全平方数是:%d'%(x,(x+100),y1,(x+268),z))
执行结果:
符合条件的整数是:-99,加100后的结果:1,完全平方数是1;再加168的结果是:169,完全平方数是:13
符合条件的整数是:21,加100后的结果:121,完全平方数是11;再加168的结果是:289,完全平方数是:17
符合条件的整数是:261,加100后的结果:361,完全平方数是19;再加168的结果是:529,完全平方数是:23
符合条件的整数是:1581,加100后的结果:1681,完全平方数是41;再加168的结果是:1849,完全平方数是:43