Python で特定の範囲内の完全な正方形をすべて取得するメソッドを作成しようとしています。2621163 と 520001400002 の間のような大きな範囲。明らかに、範囲を反復処理して、数値が完全かどうかを確認します。
def is_square(n):
return math.sqrt(n).is_integer()
そして、それを印刷することは、大きな範囲では愚かであり(小さな範囲ではうまく機能します)、永遠にかかります。この目的で利用できる Python の魔法または数学 (修正された Diophantine 方程式など) があるかどうか疑問に思っています。
編集:また、Python 3.X を使用しているため、大きな整数を使用できます。