公约数@公因数@互素@最大公约数@公约数相关性质定理@辗转相除法@欧几里得法

文章目录

辗转相除法(欧几里得算法)

  • Euclidean algorithm - Wikipedia

  • 辗转相除法和相关规律 -(wikipedia.org)

  • 辗转相除法 ,也被称为欧几里得算法 (Euclidean algorithm),是一种用于求两个整数最大公约数的算法

    • 辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,大约公元前300年,所以它是现行的算法中历史最悠久的。
    • 在我国的古代的著名数学著作《九章算术》里就有了辗转相除法,书中把此方法叫做"更相减损术",
  • 辗转相除法还可以用来推导或启发和最大公约数的基础定理

辗转相除操作

对整数 a > 0 a>0 a>0, b > 0 b>0 b>0反复运用带余除法,可得下列等式
a = b q 1 + r 1 , 0 < r 1 < b , b = r 1 q 2 + r 2 , 0 < r 2 < r 1 , r 1 = r 2 q 3 + r 3 , 0 < r 3 < r 2 , r 2 = r 3 q 4 + r 4 , 0 < r 4 < r 3 , . . . r n − 2 = r n − 1 q n + r n , 0 < r n < r n − 1 , r n − 1 = r n q n + 1 + r n + 1 ( r n + 1 = 0 ) . (1) \begin{aligned} \\&a=bq_{1}+r_{1},&&0<r_{1}<b, \\&b=r_{1}q_{2}+r_{2},&&0<r_{2}<r_{1}, \\&r_{1}=r_{2}q_{3}+r_{3},&&0<r_{3}<r_{2}, \\&r_{2}=r_{3}q_{4}+r_{4},&&0<r_{4}<r_{3}, \\&... \\&r_{n-2}=r_{n-1}q_{n}+r_{n},&&0<r_{n}<r_{n-1}, \\&r_{n-1}=r_{n}q_{n+1}+r_{n+1}&&(r_{n+1}=0).\end{aligned}\tag{1} a=bq1+r1,b=r1q2+r2,r1=r2q3+r3,r2=r3q4+r4,...rn−2=rn−1qn+rn,rn−1=rnqn+1+rn+10<r1<b,0<r2<r1,0<r3<r2,0<r4<r3,0<rn<rn−1,(rn+1=0).(1)

观察式(1)中的不等式,可得 b > r 1 > r 2 > ⋯ > r n > r n + 1 = 0 b>r_1>r_2>\cdots>r_{n}>r_{n+1}=0 b>r1>r2>⋯>rn>rn+1=0经过有限次带余除法后,最终总可以得到一个余数是零的带余除法表达式,即(1)中最后一式,其中 r n + 1 = 0 r_{n+1}=0 rn+1=0. 并且 r n r_n rn是最后一个非零余数

除第一行以外,每一行等式等号的左边 是上一行不等式的末端,而等号的右边第一个数是上一行不等式的中间元素

而 q i q_{i} qi的取值不是我们关心的重点

这里不论 a , b a,b a,b两个之间的大小关系,上述结论都成立

示例

例如, a = 361 a=361 a=361, b = 93 b=93 b=93,做辗转相除:
361 = 93 × 3 + 82 , 93 = 82 × 1 + 11 , 82 = 11 × 7 + 5 , 11 = 5 × 2 + 1 , 5 = 1 × 5. \begin{aligned}&361=93\times3+82,\\&93=82\times1+11,\\&82=11\times7+5,\\&11=5\times2+1,\\&5=1\times5.\end{aligned} 361=93×3+82,93=82×1+11,82=11×7+5,11=5×2+1,5=1×5.

又如, a = − 360 a=-360 a=−360, b = 93 b=93 b=93,做辗转相除:
− 360 = 93 × ( − 4 ) + 12 , 93 = 12 × 7 + 9 , 12 = 9 × 1 + 3 , 9 = 3 × 3. \begin{aligned}&-360=93\times(-4)+12,\\&93=12\times7+9,\\&12=9\times1+3,\\&9=3\times3.\end{aligned} −360=93×(−4)+12,93=12×7+9,12=9×1+3,9=3×3.

r n r_{n} rn表示为 a , b a,b a,b的组合表达式

由(1)式可知,

  • r 1 = a − q 1 b , r_{1}=a-q_{1}b, r1=a−q1b,

  • r 2 = b − r 1 q 2 = b − ( a − q 1 b ) q 2 r_{2}=b-r_{1}q_{2}=b-(a-q_{1}b)q_{2} r2=b−r1q2=b−(a−q1b)q2 = − q 2 a + ( 1 + q 1 q 2 ) b -q_{2}a+(1+q_{1}q_{2})b −q2a+(1+q1q2)b

  • r 3 = r 1 − r 2 q 3 r_{3}=r_{1}-r_{2}q_{3} r3=r1−r2q3= a − q 1 b − ( − q 2 a + ( 1 + q 1 q 2 ) b ) q 3 a-q_{1}b-(-q_{2}a+(1+q_{1}q_{2})b)q_{3} a−q1b−(−q2a+(1+q1q2)b)q3= ( 1 + q 2 q 3 ) a − ( q 1 + q 3 + q 1 q 2 q 3 ) b (1+q_{2}q_{3})a-(q_1+q_{3}+q_{1}q_{2}q_{3})b (1+q2q3)a−(q1+q3+q1q2q3)b

  • ...

  • r n r_{n} rn= r n − 2 − r n − 1 q n r_{n-2}-r_{n-1}q_{n} rn−2−rn−1qn (这是一个递推式,前两项推出后一项)

一步一步计算下去,总可以得到 r n r_{n} rn关于 a a a, b b b的表达式:

$r_{n}=pa+qb, $ ( n = 1 , 2 , ⋯   ) (n=1,2,\cdots) (n=1,2,⋯), p , q ∈ Z p,q\in\mathbb{Z} p,q∈Z

事实上,如果 r n − 2 , r n − 1 r_{n-2},r_{n-1} rn−2,rn−1都能够被表示为 a , b a,b a,b的表达式,则可以令 r n − 2 r_{n-2} rn−2= x 1 a + y 1 b x_{1}a+y_{1}b x1a+y1b, r n − 1 r_{n-1} rn−1= x 2 a + y 2 b x_{2}a+y_{2}b x2a+y2b,则

r n r_{n} rn= ( x 1 a + y 1 b ) − ( x 2 a + y 2 b ) q n (x_{1}a+y_{1}b)-(x_{2}a+y_{2}b)q_{n} (x1a+y1b)−(x2a+y2b)qn= ( x 1 − x 2 q n ) a + ( y 1 − y 2 q n ) b (x_{1}-x_{2}q_{n})a+(y_{1}-y_{2}q_{n})b (x1−x2qn)a+(y1−y2qn)b,即 r n r_{n} rn可以被 a , b a,b a,b表达

而 r 1 , r 2 r_1,r_2 r1,r2可以被 a , b a,b a,b的表达式表示,所以 r 3 r_{3} r3可以,以此类推,利用数学归纳法,可以得 r n r_{n} rn可以被表示为 a , b a,b a,b的表达式, ( n = 1 , 2 , ⋯   ) (n=1,2,\cdots) (n=1,2,⋯)

递推算法计算 p , q p,q p,q

上面说到, r n r_{n} rn可以被表示为 r n = p a + q b r_{n}=pa+qb rn=pa+qb,

如何求出 p , q p,q p,q呢?下面的定理给出了一个递推算法.

辗转相除法基本定理

设 a a a, b b b是任意两个正整数,并进行了式(1)中的辗转相除法,

则有
Q k a − P k b = ( − 1 ) k − 1 r k , 1 ⩽ k ⩽ n . Q_{k}a-P_{k}b=(-1)^{k-1}r_{k},\quad 1\leqslant k\leqslant n. Qka−Pkb=(−1)k−1rk,1⩽k⩽n. (2)

其中
{ P 0 = 1 , P 1 = q 1 , P k = q k P k − 1 + P k − 2 , Q 0 = 0 , Q 1 = 1 , Q k = q k Q k − 1 + Q k − 2 , 2 ⩽ k ⩽ n . (3) \left\{\begin{matrix} P_{0}=1,P_{1}=q_{1},P_{k}=q_kP_{k-1}+P_{k-2}, \\Q_{0}=0,Q_{1}=1,Q_{k}=q_kQ_{k-1}+Q_{k-2}, \end{matrix}\right. 2\leqslant k\leqslant n. \tag{3} {P0=1,P1=q1,Pk=qkPk−1+Pk−2,Q0=0,Q1=1,Qk=qkQk−1+Qk−2,2⩽k⩽n.(3)

Note

上述定理使用了较多符号来描述,相对抽象,主要可以用来证明其他一些性质或定理,这里解读一下该定理

分开写可以表示为

  • P k = q k P k − 1 + P k − 2 P_{k}=q_kP_{k-1}+P_{k-2} Pk=qkPk−1+Pk−2, ( 2 ⩽ k ⩽ n ) (2\leqslant k\leqslant n) (2⩽k⩽n)
    • P 0 = 1 , P 1 = q 1 P_{0}=1,P_{1}=q_{1} P0=1,P1=q1
  • Q k = q k Q k − 1 + Q k − 2 Q_{k}=q_kQ_{k-1}+Q_{k-2} Qk=qkQk−1+Qk−2, ( 2 ⩽ k ⩽ n ) (2\leqslant k\leqslant n) (2⩽k⩽n)
    • Q 0 = 0 , Q 1 = 1 Q_{0}=0,Q_{1}=1 Q0=0,Q1=1
  • 其中 P 0 , Q 0 P_{0},Q_{0} P0,Q0是根据需要选定的值,以便统一递推公式(3)
  • 可以看到, P k , Q k P_{k},Q_{k} Pk,Qk的递推公式形式上完全一致,可以进一步合并
    • T k T_{k} Tk= q k T k − 1 + T k − 2 q_{k}T_{k-1}+T_{k-2} qkTk−1+Tk−2, T ∈ {   P , Q   } T\in\set{P,Q} T∈{P,Q}
    • 但是注意 P 0 , P 1 P_{0},P_{1} P0,P1和 Q 0 , Q 1 Q_{0},Q_{1} Q0,Q1不同

说明

式(2)中可以看到 r k r_{k} rk= Q k a − P k b ( − 1 ) k − 1 \frac{Q_{k}a-P_{k}b}{(-1)^{k-1}} (−1)k−1Qka−Pkb= ( − 1 ) k − 1 ( Q k a − P k b ) (-1)^{k-1}(Q_{k}a-P_{k}b) (−1)k−1(Qka−Pkb) (2-1);

  • 这里利用了 a − 1 = − a ; a 1 = a \frac{a}{-1}=-a;\frac{a}{1}=a −1a=−a;1a=a

式(2)关键是确定 Q k , P k Q_{k},P_{k} Qk,Pk; a a a的系数 Q k Q_{k} Qk, b b b的系数为 P k P_{k} Pk

式(2)等号的左边统一为减法的形式 给出,相应的等号右边用 ( − 1 ) k − 1 (-1)^{k-1} (−1)k−1来控制符号

对于式(2),上面辗转相除法中讨论 r k r^{k} rk可以被表示为 a , b a,b a,b的表示的式子,而式(2)体现了这一点,定理给出了确定 Q k , P k Q_{k},P_{k} Qk,Pk的方法,方法的形式是递推计算,递推式指出,至少需要已知前两项的取值,才能推出后一项的取值

定理可能是归纳于辗转相除法中将前几个 r i r_{i} ri表示为 a , b a,b a,b的表达式

应用

例如

Q k a − P k b = ( − 1 ) k − 1 r k , 1 ⩽ k ⩽ n Q_{k}a-P_{k}b=(-1)^{k-1}r_{k},\quad 1\leqslant k\leqslant n Qka−Pkb=(−1)k−1rk,1⩽k⩽n

  • r 1 = a − q 1 b , r_{1}=a-q_{1}b, r1=a−q1b,即 a − q 1 b = r 1 a-q_{1}b=r_1 a−q1b=r1,其中 P 1 = q 1 P_{1}=q_{1} P1=q1, Q 1 = 1 Q_{1}=1 Q1=1
  • r 2 = − q 2 a + ( 1 + q 1 q 2 ) b r_2=-q_{2}a+(1+q_{1}q_{2})b r2=−q2a+(1+q1q2)b,即 q 2 a − ( 1 + q 1 q 2 ) b = − r 2 q_{2}a-(1+q_{1}q_{2})b=-r_{2} q2a−(1+q1q2)b=−r2,其中 P 2 = 1 + q 1 q 2 P_{2}=1+q_{1}q_{2} P2=1+q1q2, Q 2 = q 2 Q_{2}=q_{2} Q2=q2
  • r 3 = ( 1 + q 2 q 3 ) a − ( q 1 + q 3 + q 1 q 2 q 3 ) b r_3=(1+q_{2}q_{3})a-(q_1+q_{3}+q_{1}q_{2}q_{3})b r3=(1+q2q3)a−(q1+q3+q1q2q3)b
    • P 3 = q 3 P 2 + P 1 P_3=q_{3}P_{2}+P_{1} P3=q3P2+P1= q 1 + q 3 + q 1 q 2 q 3 q_{1}+q_{3}+q_{1}q_{2}q_{3} q1+q3+q1q2q3;
    • Q 3 = q 3 Q 2 + Q 1 Q_{3}=q_{3}Q_{2}+Q_{1} Q3=q3Q2+Q1= q 2 q 3 + 1 q_{2}q_{3}+1 q2q3+1
  • 可以发现,在 k = 1 , 2 , 3 k=1,2,3 k=1,2,3时,都和之前讨论辗转相除法时的情况对应上
  • 为了证明 k k k取更大值时仍然成立,可以采用数学归纳法,适合验证和证明这种归纳的结论

证明

对 k k k使用数学归纳法. 分别证明公式(2)成立,并且递推公式组也成立

由(1)式知

a = b q 1 + r 1 a=bq_{1}+r_{1} a=bq1+r1,即 a − q 1 b = r 1 a-q_{1}b=r_1 a−q1b=r1,可写成 Q 1 a − P 1 b = ( − 1 ) 1 − 1 r 1 Q_{1}a−P_{1}b=(−1)^{1-1}r_{1} Q1a−P1b=(−1)1−1r1.

同样由(1)式可得

b = r 1 q 2 + r 2 = ( a − b q 1 ) q 2 + r 2 b=r_{1}q_{2}+r_{2}=(a-bq_{1})q_{2}+r_{2} b=r1q2+r2=(a−bq1)q2+r2, 即 q 2 a − ( q 1 q 2 + 1 ) b = − r 2 q_{2}a-\left(q_1q_2+1\right)b=-r_2 q2a−(q1q2+1)b=−r2, 可写成 Q 2 a − P 2 b = ( − 1 ) 2 − 1 r 2 Q_{2}a−P_{2}b=(−1)^{2-1}r_{2} Q2a−P2b=(−1)2−1r2.

故当 k = 1 , 2 k=1,2 k=1,2时,(2)式成立.以下可设 n ⩾ 3 n\geqslant3 n⩾3.

现在设定理对 ( k − 1 ) (k-1) (k−1), k k k ( 2 ⩽ k ⩽ n − 1 ) (2\leqslant k\leqslant n-1) (2⩽k⩽n−1)成立.

下证定理对 ( k + 1 ) (k+1) (k+1)成立.

由 r k − 1 = r k q k + 1 + r k + 1 r_{k-1}=r_{k}q_{k+1}+r_{k+1} rk−1=rkqk+1+rk+1(3),变形得 r k + 1 = r k − 1 − r k q k + 1 r_{k+1}=r_{k-1}-r_{k}q_{k+1} rk+1=rk−1−rkqk+1(3-1)

和归纳假设式(2-1) r k = ( − 1 ) k − 1 ( Q k a − P k b ) r_{k}=(-1)^{k-1}(Q_{k}a-P_{k}b) rk=(−1)k−1(Qka−Pkb)可得 (式(2-1)带入(3-1),也就是依次展开 r k − 1 , r k r_{k-1},r_{k} rk−1,rk)
r k + 1 = r k − 1 − r k q k + 1 r_{k+1}=r_{k-1}-r_{k}q_{k+1} rk+1=rk−1−rkqk+1 = ( − 1 ) k − 2 ( Q k − 1 a − P k − 1 b ) (-1)^{k-2}(Q_{k-1}a-P_{k-1}b) (−1)k−2(Qk−1a−Pk−1b) − - − ( − 1 ) k − 1 ( Q k a − P k b ) q k + 1 (-1)^{k-1}(Q_{k}a-P_{k}b)q_{k+1} (−1)k−1(Qka−Pkb)qk+1 (4),

于是有

考虑到 ( − 1 ) − k (-1)^{-k} (−1)−k= 1 ( − 1 ) k \frac{1}{(-1)^{k}} (−1)k1= 1 k − 1 k \frac{1^{k}}{-1^{k}} −1k1k= ( − 1 ) k (-1)^{k} (−1)k; ( − 1 ) 2 k (-1)^{2k} (−1)2k= ( ( − 1 ) k ) 2 = 1 ((-1)^{k})^{2}=1 ((−1)k)2=1; ( − 1 ) 2 k − 1 = 1 ⋅ ( − 1 ) − 1 (-1)^{2k-1}=1\cdot{(-1)^{-1}} (−1)2k−1=1⋅(−1)−1= − 1 -1 −1

( − 1 ) 2 k − 2 (-1)^{2k-2} (−1)2k−2= ( − 1 ) 2 ( k − 1 ) (-1)^{2(k-1)} (−1)2(k−1)= 1 1 1;也就是 ( − 1 ) (-1) (−1)的偶数次幂是 1 1 1,计数次幂是 ( − 1 ) (-1) (−1)

对(4)两边同时乘以 ( − 1 ) k (-1)^{k} (−1)k,整理化简合并 a , b a,b a,b的系数

( − 1 ) k r k + 1 = Q k − 1 a − P k − 1 b + q k + 1 Q k a − q k + 1 P k b (-1)^{k}r_{k+1}=Q_{k-1}a-P_{k-1}b+q_{k+1}Q_{k}a-q_{k+1}P_{k}b (−1)krk+1=Qk−1a−Pk−1b+qk+1Qka−qk+1Pkb,
= ( q k + 1 Q k + Q k − 1 ) a − ( q k + 1 P k + P k − 1 ) b =(q_{k+1}Q_{k}+Q_{k-1})a-(q_{k+1}P_{k}+P_{k-1})b =(qk+1Qk+Qk−1)a−(qk+1Pk+Pk−1)b(5)

将 k + 1 k+1 k+1带入式(2)得 Q k + 1 a − P k + 1 b = ( − 1 ) k r k + 1 Q_{k+1}a-P_{k+1}b=(-1)^{k}r_{k+1} Qk+1a−Pk+1b=(−1)krk+1(6)

令 Q k + 1 = q k + 1 Q k + Q k − 1 Q_{k+1}=q_{k+1}Q_{k}+Q_{k-1} Qk+1=qk+1Qk+Qk−1; P k + 1 = q k + 1 P k + P k − 1 P_{k+1}=q_{k+1}P_{k}+P_{k-1} Pk+1=qk+1Pk+Pk−1

则满足定理式(2),(3)在 k + 1 k+1 k+1时的情况,所以若定理在 k − 1 , k k-1,k k−1,k成立时, k + 1 k+1 k+1时也成立

由数学归纳法可知 k k k取任何整数时,定理都成立

数学归纳法的应用

注:在定理1的证明中使用了下述形式的数学归纳法:

设 f ( n ) f(n) f(n) 是关于自然数 $ n $ 的一个命题,如果

  • 当 $ n=1,2 $ 时, f ( 1 ) f(1) f(1), f ( 2 ) f(2) f(2) 成立。
  • 设 k ≥ 2 k \geq 2 k≥2。如假设 f ( k − 1 ) f(k-1) f(k−1), f ( k ) f(k) f(k) 成立,推出 f ( k + 1 ) f(k+1) f(k+1) 成立。

那么, f ( n ) f(n) f(n) 对所有正整数 n n n 成立。

公约数相关概念👺

公约数

设 a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak是不全为零的整数

如整数d是每一个 a i ( 1 ≤ i ≤ k ) a_{i}(1\leq i\leq k) ai(1≤i≤k) 的约数 ,则称 d 为 a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak 的公约数

最大公约数

最大公约数: a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak 的公约数中最大的一个,称为这 k k k 个数的最大公约数 ,记为 ( a 1 (a_{1} (a1, a 2 a_{2} a2,..., a k ) a_{k}) ak).

互素

当 ( a 1 (a_{1} (a1, a 2 a_{2} a2,..., a k ) = 1 a_{k})=1 ak)=1 时,称 a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak 为互素

特别地,当 a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak 中的任何两个数都互素 ,即 ( a i , a j ) = 1 , ( i ≠ j ∈ {   1 , 2 , ⋯   , k   } ) (a_{i},a_{j})=1,(i\neq j\in\set{1,2,\cdots,k}) (ai,aj)=1,(i=j∈{1,2,⋯,k})时,称 a 1 a_{1} a1, a 2 a_{2} a2,..., a k a_{k} ak 为两两互素.

绝对值化处理和讨论公约数

由于整数 a 与 ∣ a ∣ \vert a\vert ∣a∣的约数 相同(由约数的定义,这是显然的),故有 ( a 1 , a 2 , . . . , a k ) = ( ∣ a 1 ∣ , ∣ a 2 ∣ , . . . , ∣ a k ∣ ) . (a_{1},a_{2},...,a_{k})=(|a_{1}|,|a_{2}|,...,|a_{k}|). (a1,a2,...,ak)=(∣a1∣,∣a2∣,...,∣ak∣).

因此在讨论最大公约数 性质或相关问题时,可以设 a i ( 1 ≤ i ≤ k ) a_{i}(1\leq i\leq k) ai(1≤i≤k)是正整数.或者仅讨论 a i a_{i} ai的绝对值

公约数相关基本性质👺

  • 若 a ∣ b a|b a∣b,则 ( a , b ) = a (a,b)=a (a,b)=a
  • 对于任意整数 a a a, ( a , 1 ) (a,1) (a,1)= ( 1 , a ) (1,a) (1,a)= 1 1 1
  • 若 ( a , b ) = d (a,b)=d (a,b)=d,则 ( a , b − n a ) = d (a,b-na)=d (a,b−na)=d,其中 a , b , m , n ∈ Z a,b,m,n\in\mathbb{Z} a,b,m,n∈Z
    • 设 ( a , b − n a ) = d 1 (a,b-na)=d_{1} (a,b−na)=d1
    • 由条件得 d ∣ a , d ∣ b d|a,d|b d∣a,d∣b,由整除的性质得 d ∣ b − n a d|b-na d∣b−na,从而 d d d是 a , b − n a a,b-na a,b−na的公约数,所以 d ⩽ d 1 d\leqslant{d_{1}} d⩽d1
    • 类似的, d 1 ∣ a d_{1}|a d1∣a, d 1 ∣ b − n a d_{1}|b-na d1∣b−na,由整除的性质, d 1 ∣ [ ( b − n a ) + n a ] d_{1}|[(b-na)+na] d1∣[(b−na)+na]= d 1 ∣ b d_{1}|b d1∣b,从而 d 1 d_{1} d1是 a , b a,b a,b的公约数, d 1 ⩽ d d_{1}\leqslant{d} d1⩽d
    • 综上 d = d 1 d=d_{1} d=d1
  • 任何整数 a a a和0的最大公约数为 a a a本身,即 ( a , 0 ) (a,0) (a,0)= a a a
  • 若 p p p是质数, q ≠ p q\neq{p} q=p,
    • 若 q < p q<p q<p,则 ( p , q ) = 1 (p,q)=1 (p,q)=1
    • 若 p < q p<q p<q,
      • p ∣ q p|q p∣q,则 ( p , q ) = p (p,q)=p (p,q)=p;
      • p ∤ q p\nmid{q} p∤q, ( p , q ) = 1 (p,q)=1 (p,q)=1
  • 若 a < b a<b a<b,则 a m o d    b = a a\mod{b}=a amodb=a

公约数基本定理👺

设 a , b a,b a,b是两个整数,其中 b > 0 b>0 b>0,由带余除法 知存在惟一的一对整数 q , r q,r q,r,使 a = b q + r a=bq+r a=bq+r, 0 ≤ r < b 0\leq r<b 0≤r<b,此时有

关于最大公约数的许多定理描述

定理1

对于 a = b q + r a=bq+r a=bq+r, 0 ≤ r < b 0\leq r<b 0≤r<b,有定理1:

( a , b ) = ( b , r ) (a,b)=(b,r) (a,b)=(b,r)

或 ( r , b ) (r,b) (r,b)= ( b , a ) (b,a) (b,a)

快速证明需要了解整除的基本性质和带余除法为基础(也可以用朴素的方法基于定义证明 )

证明:设 d 1 = ( a , b ) d_1=(a,b) d1=(a,b), d 2 = ( b , r ) d_2=(b,r) d2=(b,r)。也就是说 d 1 , d 2 d_{1},d_{2} d1,d2分被是 a , b a,b a,b以及 b , r b,r b,r的最大公约数;为了证明两个最大公约数相等,可以通过证明 d 1 ⩽ d 2 d_{1}\leqslant{d_{2}} d1⩽d2和 d 2 ⩽ d 1 d_{2}\leqslant{d_1} d2⩽d1同时成立即可

由 d 1 ∣ a d_1|a d1∣a, d 1 ∣ b d_1|b d1∣b及 r = a − b q r=a-bq r=a−bq知 d 1 ∣ r d_1|r d1∣r,故 d 1 d_1 d1是 b , r b,r b,r的公约数.而 d 2 d_{2} d2是 b , r b,r b,r的最大公约数, 因此有 d 1 ≤ d 2 d_1\leq d_2 d1≤d2.

同理,对于 a = b q + r a=bq+r a=bq+r, d 2 ∣ b d_{2}|b d2∣b, d 2 ∣ r d_{2}|r d2∣r则 d 2 ∣ a d_{2}|a d2∣a,可得 d 2 d_2 d2是 a , b a,b a,b的公约数,故有 d 2 ≤ d 1 d_2\leq d_1 d2≤d1. 于是得到 d 1 = d 2 d_1=d_2 d1=d2.

定理2

对于整数 a > 0 a>0 a>0, b > 0 b>0 b>0反复应用带余除法
a = b q 1 + r 1 , 0 < r 1 < b , b = r 1 q 2 + r 2 , 0 < r 2 < r 1 , r 1 = r 2 q 3 + r 3 , 0 < r 3 < r 2 , r 2 = r 3 q 4 + r 4 , 0 < r 4 < r 3 , . . . r n − 2 = r n − 1 q n + r n , 0 < r n < r n − 1 , r n − 1 = r n q n + 1 + r n + 1 ( r n + 1 = 0 ) . (1) \begin{aligned} \\&a=bq_{1}+r_{1},&&0<r_{1}<b, \\&b=r_{1}q_{2}+r_{2},&&0<r_{2}<r_{1}, \\&r_{1}=r_{2}q_{3}+r_{3},&&0<r_{3}<r_{2}, \\&r_{2}=r_{3}q_{4}+r_{4},&&0<r_{4}<r_{3}, \\&... \\&r_{n-2}=r_{n-1}q_{n}+r_{n},&&0<r_{n}<r_{n-1}, \\&r_{n-1}=r_{n}q_{n+1}+r_{n+1} &&(r_{n+1}=0).\end{aligned}\tag{1} a=bq1+r1,b=r1q2+r2,r1=r2q3+r3,r2=r3q4+r4,...rn−2=rn−1qn+rn,rn−1=rnqn+1+rn+10<r1<b,0<r2<r1,0<r3<r2,0<r4<r3,0<rn<rn−1,(rn+1=0).(1)

即对 a , b a,b a,b使用辗转相除法,则有关于最大公约数的定理2

( a , b ) = r n (a,b)=r_n (a,b)=rn

证明:由定理1和算式(1)即得

从式(1)中的最后一个等式开始应用定理1, ( r n + 1 , r n ) (r_{n+1},r_{n}) (rn+1,rn)= ( r n , r n − 1 ) (r_{n},r_{n-1}) (rn,rn−1), ( r n , r n − 1 ) (r_{n},r_{n-1}) (rn,rn−1)= ( r n − 1 , r n − 2 ) (r_{n-1},r_{n-2}) (rn−1,rn−2),..., ( r 1 , b ) = ( b , a ) (r_{1},b)=(b,a) (r1,b)=(b,a)

而 a n + 1 = 0 a_{n+1}=0 an+1=0, ( r n + 1 , r n ) (r_{n+1},r_{n}) (rn+1,rn)= ( 0 , r n ) (0,r_{n}) (0,rn)= r n r_{n} rn

所以有连等式:

r n = ( 0 , r n ) = ( r n , r n − 1 ) = ⋯ = ( r 2 , r 1 ) = ( r 1 , b ) = ( a , b ) r_n=(0,r_n)=(r_n,r_{n-1})=\cdots=(r_2,r_1)=(r_1,b)=(a,b) rn=(0,rn)=(rn,rn−1)=⋯=(r2,r1)=(r1,b)=(a,b).

定理2给出了求 ( a , b ) (a,b) (a,b)的一个具体算法. 也就是辗转相除法(欧几里得法)求两个整数的最大公约数的递推算法

求 ( 6409 , 42823 ) (6409,42823) (6409,42823).

解:因为
42823 = 6409 × 6 + 4369 42823=6409\times 6+4369 42823=6409×6+4369,
6409 = 4369 × 1 + 2040 6409=4369\times 1+2040 6409=4369×1+2040,
4369 = 2040 × 2 + 289 4369=2040\times 2+289 4369=2040×2+289,
2040 = 289 × 7 + 17 2040=289\times 7+17 2040=289×7+17,
289 = 17 × 17 289=17\times 17 289=17×17,

$ (6 409,428 823)=17. $

定理3 裴蜀定理|裴蜀恒等式

任给整数 a > 0 , b > 0 a>0,b>0 a>0,b>0,存在整数 m , n m,n m,n,使 ( a , b ) = m a + n b . (a,b)=ma+nb. (a,b)=ma+nb.

这个重要的结论叫做贝祖定理 (也称为裴蜀定理 )。裴蜀定理是上述辗转相除法导出的几个定理的综合一个特例,揭示了 a , b a,b a,b最大公约数可以被一组整数 m , n m,n m,n即 a , b a,b a,b本身线性表示

或者说,两数的最大公约数 可以用两数的整数倍相加 来表示,如 ( 105 , 252 ) = 21 = 5 × 105 + ( − 2 ) × 252 {(105,252)=21=5\times 105+(-2)\times 252} (105,252)=21=5×105+(−2)×252

证明:

式(2)或(2-1)中取 k = n k=n k=n就变形为 r n r_{n} rn= ( − 1 ) n − 1 ( Q n a − P n b ) (-1)^{n-1}(Q_{n}a-P_{n}b) (−1)n−1(Qna−Pnb)= [ ( − 1 ) n − 1 Q n ] a − [ ( − 1 ) n − 1 P n ] b [(-1)^{n-1}Q_{n}]a-[(-1)^{n-1}P_{n}]b [(−1)n−1Qn]a−[(−1)n−1Pn]b

又由定理2可知, ( a , b ) = r n (a,b)=r_{n} (a,b)=rn
( a , b ) = [ ( − 1 ) n − 1 Q n ] a + [ ( − 1 ) n P n ] b (a,b)=[(-1)^{n-1}Q_{n}] a+[(-1)^{n}P_{n}] b (a,b)=[(−1)n−1Qn]a+[(−1)nPn]b.

  • ( 6 , 15 ) = 3 × 6 − 1 × 15 , (6,15)=3\times6-1\times15, (6,15)=3×6−1×15,
  • ( 36 , 8 ) = 1 × 36 − 4 × 8. (36,8)=1\times36-4\times8. (36,8)=1×36−4×8.
推论👺

a , b a,b a,b的任一公约数是其最大公约数的约数.

该结论是裴蜀定理的推论,是一条非常有用的结论

证明:

设 a , b a,b a,b的任一公约数为 d d d,则 d ∣ a , d ∣ b d|a,d|b d∣a,d∣b

由裴蜀定理,存在 m , n m,n m,n,使得 ( a , b ) = m a + n b (a,b)=ma+nb (a,b)=ma+nb;

因为 d ∣ a d|a d∣a,所以 d ∣ a m d|am d∣am;同理 d ∣ b n d|bn d∣bn,由整除的性质, d ∣ m a + n b d|ma+nb d∣ma+nb;所以 d ∣ ( a , b ) d|(a,b) d∣(a,b)

推论得证

定理4

设 d ∣ a b d|ab d∣ab,且 ( d , a ) = 1 (d,a)=1 (d,a)=1,则 d ∣ b d|b d∣b.

定理涉及到3个符号: a , b , d a,b,d a,b,d;其中 a , d a,d a,d互质

证明:

由定理3知:使用辗转相除法可求得一对整数 x 0 , y 0 x_0,y_0 x0,y0,使 d x 0 + a y 0 = 1 , dx_{0}+ay_{0}=1, dx0+ay0=1, 两边同时乘以 b b b

从而 ( d b ) x 0 + ( a b ) y 0 = b (db)x_{0}+(ab)y_{0}=b (db)x0+(ab)y0=b.

由 d ∣ d b d|db d∣db(显然), d ∣ a b d|ab d∣ab可知上式等号左边被 d d d整除,所以右边也被 d d d整除,即 d ∣ b d|b d∣b

定理5

当 m > 0 m>0 m>0时,有 ( a m , b m ) = ( a , b ) m (am,bm)=(a,b)m (am,bm)=(a,b)m.

在应用中,还可以逆用此公式, m ( a , b ) m(a,b) m(a,b)= ( a m , b m ) (am,bm) (am,bm)

证明:

对于该定理,容易证明 ( a , b ) m (a,b)m (a,b)m是 a m , b m am,bm am,bm的公约数;

因为 ( a , b ) ∣ a (a,b)|a (a,b)∣a, ( a , b ) ∣ b (a,b)|b (a,b)∣b;所以 ( a , b ) m ∣ a m (a,b)m|am (a,b)m∣am, ( a , b ) m ∣ b m (a,b)m|bm (a,b)m∣bm,所以 ( a , b ) m (a,b)m (a,b)m是 a m , b m am,bm am,bm的公约数

但是仅此无法证明 ( a , b ) m (a,b)m (a,b)m还是最大公约数而不是普通公约数

这里对 a a a, b b b使用辗转相除法,再对每个等式两边乘 m m m,可以发现它们仍然满足带余除法:
a m = ( b m ) q 1 + r 1 m am=(bm)q_{1}+r_{1}m am=(bm)q1+r1m, 0 < r 1 m < b m 0<r_{1}m<bm 0<r1m<bm
b m = ( r 1 m ) q 2 + r 2 m bm=(r_{1}m)q_{2}+r_{2}m bm=(r1m)q2+r2m, 0 < r 2 m < r 1 m 0<r_{2}m<r_{1}m 0<r2m<r1m

⋯ \cdots ⋯,

r n m = ( r n − 1 m ) q n − 2 + r n m r_{n}m=(r_{n-1}m)q_{n-2}+r_{n}m rnm=(rn−1m)qn−2+rnm, 0 < r n m < r n − 1 m 0<r_{n}m<r_{n-1}m 0<rnm<rn−1m

r n − 1 m = ( r n m ) q n + 1 r_{n-1}m=(r_{n}m)q_{n+1} rn−1m=(rnm)qn+1. ( r n + 1 = 0 ) (r_{n+1}=0) (rn+1=0)

因此(由定理2)
( a m , b m ) = r n m = ( a , b ) m (am,bm)=r_{n}m=(a,b)m (am,bm)=rnm=(a,b)m.

推论1

( a ( a , b ) , b ( a , b ) ) (\frac{a}{(a,b)},\frac{b}{(a,b)}) ((a,b)a,(a,b)b)= 1 1 1

证明:由定理5,取 m = 1 ( a , b ) m=\frac{1}{(a,b)} m=(a,b)1,有 ( a m , b m ) (am,bm) (am,bm)= ( a , b ) m (a,b)m (a,b)m,推论成立

也可以描述为:若 ( a , b ) = d (a,b)=d (a,b)=d, a = m d , b = n d a=md,b=nd a=md,b=nd,则 ( m , n ) = 1 (m,n)=1 (m,n)=1

推论2

( a 1 m , a 2 m , ⋯   , a n m ) (a_{1}m,a_{2}m,\cdots,a_{n}m) (a1m,a2m,⋯,anm)= ( a 1 , a 2 , ⋯   , a n ) m (a_{1},a_{2},\cdots,a_{n})m (a1,a2,⋯,an)m

可以结合定理5,定理6进行证明

定理6 多个整数的最大公约数递推算法

设 ( a 1 , a 2 ) = d 2 (a_{1},a_{2})=d_{2} (a1,a2)=d2, ( d 2 , a 3 ) = d 3 (d_{2},a_{3})=d_{3} (d2,a3)=d3,···, ( d k − 2 , a k − 1 ) = d k − 1 (d_{k-2},a_{k-1})=d_{k-1} (dk−2,ak−1)=dk−1, ( d k − 1 , a k ) = d k (d_{k-1},a_{k})=d_{k} (dk−1,ak)=dk,则 ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)= d k d_{k} dk.

该定理表明求 k k k个数 a 1 a_{1} a1, a 2 a_{2} a2,···, a k ( k ≥ 3 ) a_{k}(k\geq3) ak(k≥3)的最大公约数可以由求两个数的最大公约数而逐步求出.

说明

将上述条件等式中的前一个等式带入后一个等式, ( ( a 1 , a 2 ) , a 3 ) = d 3 ((a_{1},a_{2}),a_{3})=d_{3} ((a1,a2),a3)=d3, ( ( ( a 1 , a 2 ) , a 3 ) , a 4 ) = d 4 (((a_{1},a_{2}),a_{3}),a_{4})=d_{4} (((a1,a2),a3),a4)=d4,..., ( ( ⋯ ( ( a 1 , a 2 ) , a 3 ) , ⋯   ) , a k ) ((\cdots((a_{1},a_{2}),a_{3}),\cdots),a_{k}) ((⋯((a1,a2),a3),⋯),ak)= d k d_{k} dk= ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)(1)

由此可见, ( a 1 , ⋯   , a i ) = d i (a_{1},\cdots,a_{i})=d_{i} (a1,⋯,ai)=di (2)也就是 d i d_{i} di表示前 i i i个数的最大公约数, d i , ( i = 1 , 2 , ⋯   , k ) d_{i},(i=1,2,\cdots,k) di,(i=1,2,⋯,k)

如果已经知道 d i d_{i} di,那么 d i + 1 d_{i+1} di+1= ( d i , a i + 1 ) (d_{i},a_{i+1}) (di,ai+1)

将定理换个写法表示为: ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)= ( ( ⋯ ( ( a 1 , a 2 ) , a 3 ) , ⋯   ) , a k ) ((\cdots((a_{1},a_{2}),a_{3}),\cdots),a_{k}) ((⋯((a1,a2),a3),⋯),ak)(3);这个等式还可以逆用

根据定理,容易得出 ( d i , a i + 1 , ⋯   , a k ) (d_{i},a_{i+1},\cdots,a_{k}) (di,ai+1,⋯,ak)= d k d_{k} dk= ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)(4),

这说明 ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)= ( d i , a i + 1 , ⋯   , a k ) (d_{i},a_{i+1},\cdots,a_{k}) (di,ai+1,⋯,ak)= ( ( a 1 , a 2 , ⋯   , a i ) , a i + 1 , ⋯   , a k ) ((a_1,a_{2},\cdots,a_{i}),a_{i+1},\cdots,a_{k}) ((a1,a2,⋯,ai),ai+1,⋯,ak)(4-1)

所以,计算 ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)时,可以先算前若干个元素的最大公约数 d i d_{i} di,然后再算 ( d i , a i + 1 , ⋯   , a k ) (d_{i},a_{i+1},\cdots,a_{k}) (di,ai+1,⋯,ak)

并且式(4-1)表明,先算的部分可以去掉括号 ( ( a 1 , a 2 , ⋯   , a i ) , a i + 1 , ⋯   , a k ) ((a_1,a_{2},\cdots,a_{i}),a_{i+1},\cdots,a_{k}) ((a1,a2,⋯,ai),ai+1,⋯,ak)= ( a 1 , a 2 , ⋯   , a k ) (a_{1},a_{2},\cdots,a_{k}) (a1,a2,⋯,ak)(4-2)

例如 ( ( a , b ) , c ) ((a,b),c) ((a,b),c)= ( a , b , c ) (a,b,c) (a,b,c)

  • 最大公约数运算满足交换律

    • 将 ( a 1 , ⋯   , a k ) (a_{1},\cdots,a_{k}) (a1,⋯,ak)内的按任意可能的顺序排序 ( a i 1 , a i 2 , ⋯   , a i k ) (a_{i_{1}},a_{i_{2}},\cdots,a_{i_{k}}) (ai1,ai2,⋯,aik),结果保持不变
  • 最大公约数运算满足结合律

    • 多个数的最大公约数运算,可以分组后逐个组地求各组内的最大公约数,然后对这些组内最大公约数求最大公约数
    • 设 a 1 , ⋯   , a k a_{1},\cdots,a_{k} a1,⋯,ak被划分为 t t t个组,那么 ( a 1 , ⋯   , a k ) (a_{1},\cdots,a_{k}) (a1,⋯,ak)= ( T 1 , ⋯   , T p ) (T_{1},\cdots,T_{p}) (T1,⋯,Tp)
    • 这个性质由公式(4-2)容易证明
    • 例如 ( a , b , c , d ) (a,b,c,d) (a,b,c,d)= ( ( a , b ) , ( c , d ) ) ((a,b),(c,d)) ((a,b),(c,d))
证法1

记 ( a 1 , a 2 , ⋯   , a k ) = d (a_{1},a_{2},\cdots,a_{k})=d (a1,a2,⋯,ak)=d.

由条件可得 d i ∣ d i − 1 d_{i}|d_{i-1} di∣di−1, ( i = 3 , ⋯   , k ) (i=3,\cdots,k) (i=3,⋯,k); d i ∣ a i d_{i}|a_{i} di∣ai, ( i = 2 , 3 , ⋯   , k ) (i=2,3,\cdots,k) (i=2,3,⋯,k), d 2 ∣ a 1 d_{2}|a_{1} d2∣a1

由整除的性质可知, d k ∣ d i d_{k}|d_{i} dk∣di, ( i = 2 , ⋯   , k ) (i=2,\cdots,k) (i=2,⋯,k),从而 d k ∣ a i d_{k}|a_{i} dk∣ai, ( i = 1 , 2 , 3 , ⋯   , k ) (i=1,2,3,\cdots,k) (i=1,2,3,⋯,k)

由 d k d_{k} dk是 a 1 a_{1} a1, a 2 a_{2} a2,···, a k a_{k} ak的公约数知 d k ⩽ d d_{k}\leqslant d dk⩽d.(或者由裴蜀定理推论, d k ∣ d d_{k}|d dk∣d)

另一方面, d ∣ d k − 1 , d ∣ a k d|d_{k-1},d|a_{k} d∣dk−1,d∣ak由裴蜀定理推论可得 d ∣ d k d|d_{k} d∣dk,因此有d\\leqslant d_{k} . 于是得到 . 于是得到 .于是得到d=d_{k}.

证法2

记 ( a 1 , a 2 , ⋯   , a k ) = d (a_{1},a_{2},\cdots,a_{k})=d (a1,a2,⋯,ak)=d. 由 d k ∣ a k d_{k}|a_{k} dk∣ak, d k ∣ d k − 1 d_{k}|d_{k-1} dk∣dk−1, d k − 1 ∣ a k − 1 d_{k-1}|a_{k-1} dk−1∣ak−1, d k − 1 ∣ d k − 2 d_{k-1}|d_{k-2} dk−1∣dk−2即得 d k ∣ a k − 1 d_{k}|a_{k-1} dk∣ak−1, d k ∣ d k − 2 d_{k}|d_{k-2} dk∣dk−2.

由此类推,最后可得 d k ∣ a k d_{k}|a_{k} dk∣ak, d k ∣ a k − 1 d_{k}|a_{k-1} dk∣ak−1,···, d k ∣ a 1 . d_{k}|a_{1}. dk∣a1.

由 d k d_{k} dk是 a 1 a_{1} a1, a 2 a_{2} a2,···, a k a_{k} ak的公约数知 d k ⩽ d d_{k}\leqslant d dk⩽d.

另一方面,由 d ∣ a 1 d|a_{1} d∣a1, d ∣ a 2 d|a_{2} d∣a2可得 d ∣ d 2 d|d_{2} d∣d2. 由此类推,最后可得 d ∣ d k d|d_{k} d∣dk,因此有d\\leqslant d_{k} . 于是得到 . 于是得到 .于是得到d=d_{k}.

应用和推论

问题1

对任意的整数 x , y x, y x,y, ( a 1 , a 2 ) = ( a 1 , a 2 + a 1 x ) = ( a 1 + a 2 y , a 2 ) (a_1, a_2) = (a_1, a_2 + a_1 x) = (a_1 + a_2 y, a_2) (a1,a2)=(a1,a2+a1x)=(a1+a2y,a2).

证明:前面公约数基本定理中给出了证明方法,利用整除的性质(线性组合)以及夹逼法

问题2

证明:当 ( c , a ) = 1 (c, a) = 1 (c,a)=1 时,有 ( c , a b ) = ( c , b ) (c, ab) = (c, b) (c,ab)=(c,b).

证明

利用定理5,6

( c , b ) (c,b) (c,b)= ( c , b ( c , a ) ) (c,b(c,a)) (c,b(c,a))= ( c , b c , b a ) (c,bc,ba) (c,bc,ba)= ( ( c , b c ) , b a ) ((c,bc),ba) ((c,bc),ba)= ( c , b a ) (c,ba) (c,ba)

问题3

当 ( a , b ) = 1 (a, b) = 1 (a,b)=1 时,有 ( c , a b ) = ( c , a ) ( c , b ) (c, ab) = (c, a)(c, b) (c,ab)=(c,a)(c,b).(0)

证明

利用定理5,6,对等式右边变形

( c , a ) ( c , b ) (c, a)(c, b) (c,a)(c,b)= ( c ( c , b ) , a ( c , b ) ) (c(c,b),a(c,b)) (c(c,b),a(c,b))= ( ( c 2 , b c ) , ( a c , a b ) ) ((c^2,bc),(ac,ab)) ((c2,bc),(ac,ab))= ( c 2 , b c , a c , a b ) (c^2,bc,ac,ab) (c2,bc,ac,ab)= ( c ( c , b , a ) , a b ) (c(c,b,a),ab) (c(c,b,a),ab)(1)

由于 ( a , b ) = 1 (a,b)=1 (a,b)=1,所以 ( a , b , c ) (a,b,c) (a,b,c)= ( ( a , b ) , c ) = ( 1 , c ) = 1 ((a,b),c)=(1,c)=1 ((a,b),c)=(1,c)=1,带入到式(1),得 ( c ( c , b , a ) , a b ) (c(c,b,a),ab) (c(c,b,a),ab)= ( c , a b ) (c, ab) (c,ab),说明式(0)等号右边等于左边

相关推荐
摆烂小白敲代码2 个月前
小小GCD、LCM拿下拿下
c语言·数据结构·c++·算法·最大公约数·gcd·lcm
闻缺陷则喜何志丹6 个月前
【最大公约数 排序】2344. 使数组可以被整除的最少删除次数
c++·算法·leetcode·排序·最大公约数·最少·被整除
阿明61 年前
求最大公约数的几种常见的方法 【详解】
c语言·算法·最大公约数