輾轉相除與 Bézout
觀念
輾轉相除法 (Euclidean algorithm) 求最大公因數:反覆用 ,餘數為 0 時的除數就是答案。它快得驚人——步數與位數成正比,是最古老仍在用的演算法。
Bézout 等式:存在整數 使 。把輾轉相除的每一步倒推回去就能找到(擴展歐幾里得);解不唯一:若 是一組解、,所有解是 、( 為整數), 與 要一起調整。
算例::、、,得 6。倒推:。。
Bézout 是數論的萬能鑰匙:模反元素存在性、線性同餘方程可解條件、中國剩餘定理、「互質則存在 」全由它推出;RSA 產生金鑰時,私鑰指數 就是用擴展歐幾里得由 與 算出來的。
例題
用輾轉相除法 (Euclidean algorithm) 求 。
看解法與答案
反覆用「大數 = 商 × 小數 + 餘數」,因為 ;餘數為 0 時的除數就是 gcd:
最後一個非零餘數(也就是最後的除數)是 ,所以 。
答案:
用在哪裡
- 密碼產生 RSA 金鑰時,已知 後用擴展歐幾里得算法求公開指數 的模反元素,就得到私鑰指數 ,即使是 2048 位元的大數也只要幾千步。
- 商業飲料一箱 6 罐或 9 罐兩種規格,30 罐的訂單能剛好出貨,31 罐不行,因為能湊出的數一定是 gcd 3 的倍數。
插畫


學習路徑
先學會
- 模運算 大二
學完可以接著學
互動練習在本機版
這個網站是觀念與例題的閱讀版。互動練習(每次出不同數字的新題、自動判對錯、錯題本、熟練度與複習排程)在「數學學院」本機版,目前還沒對外開放。