用来练手的python 练习题,原链接 : python练习实例3
拿到题目就写了如下代码,思路是因为使用**0.5进行开平方操作时,python会将数据类型自动转换为float单精度浮点型。这里利用提取其整数部分,来判断这个数是否是完全平方数。
z = 13
while (z**2 - 168)**0.5 != int((z**2 - 168)**0.5):
z+=1
x = z**2-268
print(x)
输出结果 :
这个代码问题也很明显,没有办法穷举而只能找出最小的x的值。为了穷举所有的结果,参考答案给出了以下分析 :
假设该数为 x。
1、则: x + 100 = n 2 , x + 100 + 168 = m 2 x + 100 = n^2, x + 100 + 168 = m^2 x+100=n2,x+