方法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で数値が完全な平方数であるかどうかを判定することができます。適切な方法を選択し、必要に応じてコードを調整してください。