輾轉相除法求最大公因數

輾轉相除法是一種用於求兩個數的最大公因數(GCD)的經典算法。以下是一種基本的輾轉相除法實現方法:

  1. 將兩個數(我們將其稱為a和b)轉換為同樣的非負數以便使用歐幾里得算法。如果b是負數,則將它轉換為a,-a。
  2. 將b除以a(通常被稱為b和a是第一輪),並用商r和餘數b代替b和a。這個商就是下一步計算的被除數。
  3. 將a(餘數)除以商r,用商和餘數代替a(這個新的商)進行下一步。
  4. 重複第二步和第三步,直到餘數為0。 此時,你最後一次除以0時的商就是這兩個數的最大公因數。

以下是一個Python代碼示例:

def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a

這個函式接受兩個參數a和b,並返回它們的最大公因數。在循環中,我們不斷地用b去除a,直到b為0為止。在每次疊代中,我們將a和b的值更新為新的商和餘數。當b為0時,我們就找到了最大公因數,返回它即可。

請注意,這個算法假設輸入的數都是正整數。如果輸入的數可能為負數或非整數,那麼可能需要使用其他方法來找到最大公因數。