最大公因數c遞迴

最大公因數(Greatest Common Divisor, GCD)的遞迴算法可以用來找出兩個或多個數字的最大公因數。在數學中,最大公因數是兩個或更多整數的共有因子中最大的那一個。

一個簡單的遞迴算法來計算兩個數字的GCD是歐幾里得算法(Euclidean algorithm)的遞迴版本。這個算法的基本思想是,要找到a和b的GCD,我們可以找到a%b(即a除以b的餘數),然後用b來代替a,用a%b的結果來代替b,直到b為0為止。在這個過程中,我們記錄下每次的a值,這就是我們要找的GCD。

以下是一個用Python編寫的遞迴版本的歐幾里得算法:

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

# 使用示例
print(gcd(12, 18))  # 輸出應該是6

這個算法的工作原理是這樣的:

這個算法是遞迴的,因為它會不斷地調用自身來解決規模更小的問題。每次調用,b的值都會變小,直到最終找到GCD。

請注意,這個算法的時間複雜度是線性的,即O(max(a, b)),因為它最多需要log(max(a, b))次操作來將b減少到0。在實際應用中,這個算法非常高效,特別是在處理較小的數字時。對於大數字,可以使用更高效的算法,如質因數分解算法。