python习题练习:题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?
题目限定了该整数需要加上100后是一个完全平方数,所以需要考虑这个完全平方数的范围,这个范围不会太大,根据数学知识可以得出最大的完全平方数为99^2=9801。所以在这个完全平方数的范围内,加上100后的数字也不会太大,所以可以将整数范围最大定为9801。
另外,只有正整数才可能是完全平方数,这个数先加100,再加168,也就是取-99的时候也可以保证是正数,所以我们最小范围可以定为-100
这样可以有效避免程序运行时的不必要耗时和计算资源浪费。
示例代码:
for i in range(-100,10000): x = int(pow(i + 100, 0.5)) y = int(pow(i + 100 + 168, 0.5)) if x * x == i + 100 and y * y == i + 100 + 168: print(i)
输出结果:
-99 21 261 1581
大家可以验证一下这个答案是否正确哦。
标签: python基础