我想写一个方法,在Python中获取给定范围内的所有完美平方数。例如在2621163和520001400002之间的大范围内。现在很明显,通过迭代范围并检查一个数字是否是完美的,可以实现如下:
def is_square(n):
return math.sqrt(n).is_integer()
对于大范围的计算,直接输出结果是很愚蠢的(小范围可以运行得很好),并且需要很长时间。我想知道是否有一些 Python 魔法或数学魔法(比如修改后的裴蜀定理),可以用来解决这个问题。
编辑:此外,我正在使用 Python 3.X,所以可以使用大整数。