周末小编帮邻居家的小朋友辅导功课,遇到了完全平方数,一时想不起来的小编立马开始百度,原来完全平方数是某个整数的平方的形式。辅导小朋友时,小编就在想,作为正在学习Python的大朋友们有没有做到关于求完全平方数的练习呢?下面我们来做下练习吧。
例题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析:因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:
n=0 while (n+1)**2-n*n<=168: n+=1 print(n+1) ---------- 85
思路是:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。至于判断是否是完全平方数,最简单的方法是:平方根的值小数为0即可。
结合起来:
n=0 while (n+1)**2-n*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)
例题做完了,你会了吗?若不是很熟悉,改变数值多多练习,你会掌握这个知识的。更多Python学习推荐:https://www.py.cn/