Pythonで最大公約数を求める方法

Pythonでは、2つの数値の最大公約数を求めるには次の方法が利用できます。

方法1:ループを使用する

def get_common_divisors(num1, num2):
    common_divisors = []
    smaller_num = min(num1, num2)
    for i in range(1, smaller_num + 1):
        if num1 % i == 0 and num2 % i == 0:
            common_divisors.append(i)
    return common_divisors

再帰を使用した方法2

def get_common_divisors(num1, num2):
    if num2 == 0:
        return num1
    else:
        return get_common_divisors(num2, num1 % num2)

2つの数の最大公約数を取り出すには、メソッド2の再帰処理が、すべての公約数を取り出すには、メソッド1のループ処理が良い

bannerAds