day13
找完全平方数
一个整数,它加上 100 后是一个 完全平方数 ,再加上 168又是一个完全平方数,请问该数是多少?
分析
1.完全平方数,就是sqrt(n)=m, m为整数
判断条件 m*m==sqrt(n) 或 pow(m,2)=sqrt(n)或pow(m,2)=pow(n,0.5)
2.题目并未说明寻找的边界,可以暂定一个比较大的边界100w
3.注意题目的小坑:对于数n,要判断n+100和n+100+168是否是完全平方数
编码实现
1.编码实现(循环)
for i in range(1000000):
m=i+100
n=m+168
if pow(int(pow(m,0.5)),2) == m and pow(int(pow(n,0.5)),2) == n :
print(i)
运行结果
21
261
1581
2.编码实现(函数)
def CheckIsSqrt(n):
m=int(pow(n,0.5))
if pow(m,2)==n:
return True
else:
return False
for i in range(100000000):
m=i+100
n=m+168
if CheckIsSqrt(m) and CheckIsSqrt(n) :
print(i)
运行结果
21
261
1581