下面代码是求10000以内的完全平方数,为什么要将math.sqrt(i + 100) 转化为int类型,不能用float类型 x 相乘?我测试如果不用int转化,结果是错的。
import math
num = []
for i in range(1, 10001):
x = int(math.sqrt(i + 100))
y = int(math.sqrt(i + 268))
if (x ** 2 == i + 100) and (y ** 2 == i + 268):
num.append(i)
print("这些数是" + str(num))