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

  • 19
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值