遞迴求最大公因數
遞歸求最大公因數可以使用輾轉相除法,也稱為歐幾里得算法。該算法基於以下原理:兩個整數的最大公因數等於其中較小的數和兩數的差的最大公因數。
具體步驟如下:
- 定義兩個數 a 和 b,假設 a 小於等於 b。
- 如果 b 等於 0,那麼最大公因數 gcd(a, b) 就等於 a。
- 否則,把 a 除以 b,得到商 q 和餘數 r。遞歸地求 gcd(r, b)。
- 將 r 和 q 作為新的 a 和 b,返回遞歸調用 gcd(r, q)。
使用 Python 代碼實現如下:
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
在這個函式中,如果 b 為 0,說明已經找到了最大公因數,直接返回 a。否則,遞歸調用 gcd(b, a % b),即取餘數作為新的 a,繼續求最大公因數。最終,當 b 變為 0 時,函式返回的就是最大公因數。