ChatGPTに最大公約数と最小公倍数を求めるPythonコードを書いてもらった

ChatGPTに最大公約数と最小公倍数を求めるPythonコードを書いてもらいました。

世界最古のアルゴリズムとして知られている「ユークリッドの互除法」を使う有名な問題です。

 

指示文(プロンプト):

任意の2つの自然数の最大公約数と最小公倍数を求めるpythonコードを示してください。2つの自然数は変数として定義できるようにしてください。計算結果をprintするようにしてください。

 

回答:

以下は、ユークリッドの互除法を使った2つの自然数の最大公約数と最小公倍数を求めるPythonコードです。変数として定義された2つの自然数は、それぞれ「a」と「b」として扱われます。


def gcd(a, b):
    """
    2つの自然数aとbの最大公約数を返す。
    """
    while b != 0:
        a, b = b, a % b
    return a

def lcm(a, b):
    """
    2つの自然数aとbの最小公倍数を返す。
    """
    return a * b // gcd(a, b)

# 2つの自然数を変数として定義する
num1 = 36
num2 = 48

# 最大公約数を求め、結果を出力する
result_gcd = gcd(num1, num2)
print(f"{num1}と{num2}の最大公約数は{result_gcd}です。")

# 最小公倍数を求め、結果を出力する
result_lcm = lcm(num1, num2)
print(f"{num1}と{num2}の最小公倍数は{result_lcm}です。")
    

このコードでは、2つの自然数「num1」と「num2」を変数として定義し、それぞれ36と48に設定されています。最大公約数を計算するために、関数gcdを呼び出し、num1とnum2を引数として渡します。同様に、最小公倍数を計算するために、関数lcmを呼び出し、num1とnum2を引数として渡します。計算結果は、print文を使って出力されます。

結果:

自然数は 2832 と 3776 としました。最大公約数は944、最小公倍数は11328が正解です。以下のように成功しました。