python练习题——for循环之“一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?”

题目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 
  

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

你可能感兴趣的:(python练习题,python,练习题,完全平方数)