歐幾里得算法是一種求解兩非負數最大公約數的過程,它本質上就是執行展轉相除法。html
int gcd(int a,int b) { return b==0?a:gcd(b,a%b); }
可證實最終獲得的結果(設爲\(r_n\))就是所求最大公約數:第一步證實\(r_n\)是兩數約束,第二步證實\(r_n\)可被兩數任意約數整除。算法
貝祖定理:對於不全爲 0 的天然數\(a,b\),必然存在整數\(x,y\)(不惟一)知足等式\(ax+by=gcd(a, b)\)。使用擴展歐幾里得算法可以證實。進而可知,若\(a,b\)互素,那麼存在整數\(x,y\)知足等式\(ax+by=1\)。更進一步,若\(a,b\)互素,總能夠找到一個比\(b\)小的非負數\(x\),使得\(ax=1(\bmod b)\)成立。函數
中國剩餘定理是從一個方程求解過程總結出的定理。ui
有同餘方程組:\(\left\{\begin{array}{l}{x \equiv a_{1}\left(\bmod m_{1}\right)} \\ {x \equiv a_{2}\left(\bmod m_{2}\right)} \\ {\cdots} \\ {x \equiv a_{k}\left(\bmod m_{k}\right)}\end{array}\right.\),其中\(m_1, m_2, \cdots, m_k\)爲兩兩互素整數,求\(x\)的最小非負整數解。spa
求解:.net
證實:code
推論:基於上述同餘方程組,對於不一樣的\(\left(a_{1}, a_{2} \dots, a_{k}\right)\)集合,\(0 \leqslant x_{最小非負值} \leqslant M\)取值亦各不相同,此一一對應關係可用於推導歐拉函數。htm
參考資料:blog
展轉相除法的原理get
轉載請註明本文出處:http://www.javashuo.com/article/p-emqdyuvv-gq.html