欧几里得算法
又名辗转相除法,是求最大公因数的算法。
定理:
设 \(\gcd(a,b)\) 是 \(a,b\) 的最大公因数
则 \(\gcd(a,b)=\gcd(b,a\bmod b)\)
证明:
设 \(a > b\)
令 \(a = kb+c\),显然地 \(c=a\bmod b\)
设 \(d=\gcd(a,b)\),则设 \(\left\{\begin{matrix}a=p_1d \\b=p_2d\end{matrix}\right.\),显然地 \(p_1\) 与 \(p_2\) 互质
代入得 \(p_1d = kp_2d+c\)
\(c = d(p_1-kp_2)\)
则定理可改写为 \(\gcd(p_1d,p_2d)=\gcd(dp_2,d(p_1-kp_2))=d\)
即证明 \(p_2\) 与 \(p_1-kp_2\) 互质
反证法
若 \(p_2\) 与 \(p_1-kp_2\) 不互质,设其最大公因数为 \(t\)
则 \(\left\{\begin{matrix}p_2=tm \\p_1-kp_2=tn\end{matrix}\right.\) \(m,n\) 互质,\(t\ge 2\)
\(∵ p_2=tm\)
\(∴ p_1 -ktm=tn\)
\(p_1=t(km+n)\)
\(\left\{\begin{matrix}p_2=tm \\p_1=t(km+n)\end{matrix}\right.\) \(m,n\) 互质,\(t\ge 2\)
\(∴ \left\{\begin{matrix}a=p_1d=td(km+n) \\b=p_2d=tmd =td\cdot m\end{matrix}\right.\)
又 \(∵ t\ge2\)
\(∴ \gcd(a,b)=td > d\)
与命题矛盾,即 \(p_2\) 与 \(p_1-kp_2\) 互质
则 \(\gcd(a,b)=\gcd(b,a\bmod b)\)
证毕