如何求最大公因數

最大公因數(Greatest Common Divisor, GCD),也稱為最大公約數,是指兩個或更多個整數中最大的那個共同因子。求最大公因數有幾種方法,以下是其中幾種常見的方法:

  1. 質因數分解法: 將兩個數分別分解成質因數的乘積,然後找出共同的質因數,將它們相乘得到最大公因數。

    例如,求50和30的最大公因數: 50 = 2 × 2 × 5 × 5 30 = 2 × 3 × 5 最大公因數是2 × 5 = 10

  2. 長除法: 用較大的數除以較小的數,得到一個餘數。然後用除數除以這個餘數,再次得到一個餘數。重複這個過程,直到餘數為0,此時的除數就是最大公因數。

    例如,求12和18的最大公因數: 18 ÷ 12 = 1 R 6 12 ÷ 6 = 2 6 ÷ 2 = 3 因為餘數為0,所以最大公因數是2。

  3. Euclidean算法(歐幾里得算法): 這是最常用的求最大公因數的方法,它的基本思想是:兩個數的最大公因數等於它們中的較小數與兩數差的最大公因數。

    例如,求100和80的最大公因數: 100 ÷ 80 = 1 R 20 80 ÷ 20 = 4 所以,100和80的最大公因數等於80和20的最大公因數。 20 ÷ 10 = 2 R 0 所以,100和80的最大公因數是10。

  4. 輾轉相除法: 這是一個遞歸算法,可以用來實現Euclidean算法。

    例如,求100和80的最大公因數: gcd(100, 80) = gcd(80, 100 mod 80) = gcd(80, 20) gcd(80, 20) = gcd(20, 80 mod 20) = gcd(20, 60) gcd(20, 60) = gcd(60, 20 mod 60) = gcd(60, 10) gcd(60, 10) = gcd(10, 60 mod 10) = gcd(10, 40) gcd(10, 40) = gcd(40, 10 mod 40) = gcd(40, 30) gcd(40, 30) = gcd(30, 40 mod 30) = gcd(30, 10) gcd(30, 10) = gcd(10, 30 mod 10) = gcd(10, 20) gcd(10, 20) = gcd(20, 10 mod 20) = gcd(20, 0) 因為餘數為0,所以最大公因數是20。

這些方法都可以用來求兩個或更多個整數的最大公因數。在計算機科學中,通常使用Euclidean算法或者輾轉相除法來實現,因為它們的時間複雜度更低。