我想写一个方法到在Python中获取给定范围内的所有完美正方形。大范围的像2621163和520001400002.之间现在很明显,通过迭代范围和检查,如果一个号码是完美的,像这样Python - 在给定的大数范围内找到所有完美正方形的最快方法
def is_square(n):
return math.sqrt(n).is_integer()
,然后打印是愚蠢的大范围(小范围的伟大工程),并会采取永远。我想知道是否有任何可用于此目的的Python魔术或数学(例如修改的丢番图方程)。
编辑:另外我使用Python 3.X,所以我可以使用大整数。