python3 100例 2day
实例003:完全平方数 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数 是多少?
程序分析:因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的 方法来获取上限
完全平方数:若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
思路是:n与n+1的平方差随n的增大而不断增大,最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比 这更大的间隙。 至于判断是否是完全平方数,最简单的方法是:平方根的值的小数为0即可。
n=0
while (n+1)**2-n*n<=168: #获取上限也就是n+1的平方与n的平方的差刚好等于168(最坏情况)
n+=1
for i in range((n+1)**2): #在范围中遍历
if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5): #判断完全平方数
print(i-100)