以下標點符號均用英文半角符號.帶*號爲作者自己證明,可能有漏洞,可以在評論區反饋.
帶餘除法
設 \(a,b\) 是兩個給定的整數,\(a \ne 0\),那麼,一定存在唯一的一對整數 \(q\) 與 \(r\),滿足
\[b=qa+r,\quad 0\le r<|a|.\]
此外,\(a\mid b\) 的充分必要條件是 \(r=0\).
*輾轉相減法
\((a,b)=(a,b-a).\)
證: 設 \(c=(a,b),a=cs,b=ct,(s,t)=1\),那麼等價於證 \((s,t)=(s,t-s)=1(s<t)\)
若 \((s,t-s)=d>1\),一定有 \(d\mid t-s\).又 \(d\mid s\),那麼 \(d\mid t\),\((s,t)\ge d\),矛盾.
故 \((a,b)=(a,b-a).\)
輾轉相除法
定理 \(1\):設 \(u_0,u_1\) 是給定的兩個整數,\(u_1\ne 0\),\(u1\nmid u_0\),我們一定可以重複應用帶餘除法得到下面 \(k+1\) 個等式:
\[\begin{cases} u_0=q_0u_1+u_2, & 0<u_2<|u_1|,\\ u_1=q_1u_2+u_3, & 0<u_3<u_2,\\ ......&......\\ u_{k-1}=q_{k-1}u_k+u_{k+1}, & 0<u_{k+1}<u_k,\\ u_k=q_ku_{k+1}. \end{cases} \]
以上的算法被稱爲輾轉相除法。
\(P.S\):這裏並不是聯立方程組,只是我找不到對應的 \(Latex\).
證: 對 \(u_0,u_1\),由 \(u_1\nmid u_0\) 知必有第一式成立.同樣地,如果 \(u_2\nmid u_1\) 就得到第二式;如果 \(u_2\mid u_1\) 就證明對 \(k=1\) 成立.繼續這樣做,就得到
\[|u_1|>u_2>u_3>...>u_{j+1}>0\]
及前面 \(j\) 個等式成立.若 \(u_j+1\mid u_j\),則定理對 \(k=j\) 成立;若 \(u_{j+1}\nmid u_j\),則繼續對 \(u_j,u_{j+1}\) 用定理 \(1\).由於小於 \(|u_1|\) 的正整數只有有限個以及 \(1\) 整除任一整數,所以這過程不能無限制地做下去,一定會出現某個 \(k\),要麼 \(1<u_{k+1}\mid u_k\),要麼 \(1=u_{k+1}\mid u_k\),證畢.
定理 \(2\):由定理 \(1\),我們可以推出:
\(\text{(i)}\ u_{k+1}=(u_0,u_1)\),即最後一個不等於 \(0\) 的餘數 \(u_{k+1}\) 就是 \(u_0\) 和 \(u_1\) 的最大公約數;
\(\text{(ii)}\ d\mid u_0\) 且 \(d\mid u_1\) 的充分必要條件是 \(d\mid u_{k+1}\);
\(\text{(iii)}\) 存在整數 \(x_0,x_1\),使
\[u_{k+1}=x_0u_0+x_1u_1,\]
即兩個整數的最大公約數一定可表爲這兩個整數的整係數線性組合.
證: 由輾轉相減法,從定理 \(1\) 最後一式開始,一次往上推,可得
\[u_{k+1}=(u_{k+1},u_k)=(u_k,u_{k-1})=...=(u_2,u_1)=(u_1,u_0),\]
這就證明了 \(\text{(i)}\).\((\text{ii})\) 的充分性和 \(\text{(iii)}\) 是等價的。我們知 \(u_{k+1}\) 可表示成 \(u_{k-1}\) 和 \(u_k\) 的整係數線性組合.然後消去 \(u_k\),得到 \(u_{k+1}\) 可表示爲 \(u_{k-2}\) 和 \(u_{k-1}\) 的整係數線性組合,這就證明了 \(\text{(iii)}\).