最大公因数 与 最小公倍数
两个数的 最大公因数 \(gcd\) 与 最小公倍数 \(lcm\) 满足:
\[a\times b = gcd(a,b)\times lcm(a,b)
\]
由 欧几里得算法 可以快速的求出 最大公因数,由此可以得到 最小公倍数 的值。
\[lcm(a,b) = \frac{a}{gcd(a,b)}\times b
\]
证明:
由唯一分解定理可得:
\[a = p_1^{a_1}\times p_2^{a_2}\times p_3^{a_3}\times\dots\times p_{n-1}^{a_{n-1}}\times p_n^{a_n}\\
b = p_1^{b_1}\times p_2^{b_2}\times p_3^{b_3}\times\dots\times p_{n-1}^{b_{n-1}}\times p_n^{b_n}
\]
因为 最大公因数 既是 \(a\) 的因数也是 \(b\) 的因数,\(a\) 是 最小公倍数 的因数,\(b\) 也是 最小公倍数 的因数,所以:
\[gcd(a,b) = p_1^{\min(a_1,b_1)}\times p_2^{\min(a_2,b_2)}\times p_3^{\min(a_3,b_3)}\times\dots\times p_{n-1}^{\min(a_{n-1},b_{n-1})}\times p_n^{\min(a_n,b_n)}\\
lcm(a,b) = p_1^{\max(a_1,b_1)}\times p_2^{\max(a_2,b_2)}\times p_3^{\max(a_3,b_3)}\times\dots\times p_{n-1}^{\max(a_{n-1},b_{n-1})}\times p_n^{\max(a_n,b_n)}\\
\]
由此可以算出 \(gcd(a,b)\times lcm(a,b)\) 与 \(a\times b\) 的值,发现:
\[a\times b = gcd(a,b) \times lcm(a,b)
\]