Pythonでの完全な平方数の判定方法


方法1: ルートの整数部分を取得して比較する方法

import math
def is_perfect_square(num):
    root = math.isqrt(num)
    return root * root == num

この方法では、math.isqrt()関数を使用して数値の平方根の整数部分を取得します。その後、整数部分の2乗が元の数値と等しいかどうかを比較して、結果を返します。

方法2: ルートの近似値を使用する方法

def is_perfect_square(num):
    root = int(num  0.5)
    return root * root == num

この方法では、指数演算子(``)を使用して数値の平方根の近似値を取得し、整数に変換します。その後、整数部分の2乗が元の数値と等しいかどうかを比較して、結果を返します。

方法3: ルートの整数部分を計算せずにループを使用する方法

def is_perfect_square(num):
    if num < 0:
        return False
    if num == 0:
        return True
    i = 1
    while i * i <= num:
        if i * i == num:
            return True
        i += 1
    return False

この方法では、ループを使用して数値の平方数かどうかを判定します。数値が負の場合は平方数ではないと判断し、ループを終了します。ループ内では、現在の値とその2乗が元の数値と等しいかどうかを比較します。

以上の方法を使用して、Pythonで数値が完全な平方数であるかどうかを判定することができます。適切な方法を選択し、必要に応じてコードを調整してください。