点个关注吧,谢谢!
目的: 给定整数 a , b ; a > b a,b;a>b a,b;a>b,通过有限步 n n n次带余除法,使得最后的余数为0,而第 n − 1 n-1 n−1次的余数便是 a , b a,b a,b的最大公因数。
通过下面一系列带余除法,求得最后余数为0:
a = b q 1 + r 1 a=bq_1+r_1 a=bq1+r1
b = r 1 q 2 + r 2 b=r_1q_2+r_2 b=r1q2+r2
r 1 = r 2 q 3 + r 3 r_1=r_2q_3+r_3 r1=r2q3+r3
. . . . .... ....
r n − 1 = r n q n + 1 + r n + 1 , r n + 1 = 0 r_{n-1}=r_nq_{n+1}+r_{n+1},r_{n+1}=0 rn−1=rnqn+1+rn+1,rn+1=0
带余除法的性质知道: 0 ≤ r n + 1 < r n < . . . < r 1 < ∣ b ∣ 0 \le r_{n+1}<r_n<...<r_1<|b| 0≤rn+1<rn<...<r1<∣b∣
通过上述辗转相除法,可得
g
c
d
(
a
,
b
)
=
r
n
gcd(a,b)=r_n
gcd(a,b)=rn。
原理:
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
r
1
)
,
.
.
.
,
=
g
c
d
(
r
n
−
1
,
r
n
)
gcd(a,b)=gcd(b,r_1),...,=gcd(r_{n-1},r_n)
gcd(a,b)=gcd(b,r1),...,=gcd(rn−1,rn)
因为最后一步
r
n
+
1
=
0
r_{n+1}=0
rn+1=0,所以
g
c
d
(
r
n
−
1
,
r
n
)
=
g
c
d
(
r
n
q
n
+
1
,
r
n
)
=
r
n
gcd(r_{n-1},r_n)=gcd(r_nq_{n+1},r_n)=r_n
gcd(rn−1,rn)=gcd(rnqn+1,rn)=rn
现证明:
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
r
1
)
gcd(a,b)=gcd(b,r_1)
gcd(a,b)=gcd(b,r1)
g
c
d
(
a
,
b
)
∣
a
,
g
c
d
(
a
,
b
)
∣
b
,
r
1
=
a
−
b
q
1
→
g
c
d
(
a
,
b
)
∣
r
1
,
且
g
c
d
(
a
,
b
)
∣
r
,
→
g
c
d
(
a
,
b
)
∣
g
c
d
(
b
,
r
1
)
gcd(a,b)|a,gcd(a,b)|b,r_1=a-bq_1\rightarrow gcd(a,b)|r_1,且gcd(a,b)|r,\rightarrow gcd(a,b)|gcd(b,r_1)
gcd(a,b)∣a,gcd(a,b)∣b,r1=a−bq1→gcd(a,b)∣r1,且gcd(a,b)∣r,→gcd(a,b)∣gcd(b,r1)。
同理
g
c
d
(
b
,
r
1
)
∣
g
c
d
(
a
,
b
)
gcd(b,r_1)|gcd(a,b)
gcd(b,r1)∣gcd(a,b)
所以
g
c
d
(
b
,
r
1
)
=
g
c
d
(
a
,
b
)
gcd(b,r_1)=gcd(a,b)
gcd(b,r1)=gcd(a,b)
性质:
1.若
a
,
b
a,b
a,b中有负数,直接把负数变为正数来求最大公因数。
证:即需证明
g
c
d
(
a
,
b
)
=
g
c
d
(
a
,
−
b
)
gcd(a,b)=gcd(a,-b)
gcd(a,b)=gcd(a,−b)。
直接用定义证明:设
g
c
d
(
a
,
b
)
=
k
gcd(a,b)=k
gcd(a,b)=k,那么
a
=
r
1
k
,
b
=
r
2
k
,
r
1
,
r
2
互素
a=r_1k,b=r_2k,r_1,r_2互素
a=r1k,b=r2k,r1,r2互素
对于
a
,
−
b
a,-b
a,−b,
a
=
r
1
k
,
−
b
=
−
r
2
k
;
g
c
d
(
a
,
−
b
)
=
k
a=r_1k,-b=-r_2k; gcd(a,-b)=k
a=r1k,−b=−r2k;gcd(a,−b)=k
2.对任意
a
,
b
a,b
a,b,有整数
s
,
y
s,y
s,y使得
g
c
d
(
a
,
b
)
=
x
a
+
y
b
gcd(a,b)=xa+yb
gcd(a,b)=xa+yb
证:利用上述辗转相除法,反推:
r 1 = a − q 1 b r_1=a-q_1b r1=a−q1b
r 2 = b − r 1 q 2 = b − ( a − q 1 b ) q 2 = − q 2 a + ( 1 + q 1 q 2 ) b r_2=b-r_1q_2=b-(a-q_1b)q_2=-q_2a+(1+q_1q_2)b r2=b−r1q2=b−(a−q1b)q2=−q2a+(1+q1q2)b
. . . ... ...
每一步都能反推,最后得到
g c d ( a , b ) = r n = x n a + y n b gcd(a,b)=r_n=x_na+y_nb gcd(a,b)=rn=xna+ynb
举例
辗转相除法求
g
c
d
(
210
,
−
33
)
gcd(210,-33)
gcd(210,−33)
g
c
d
(
210
,
−
33
)
=
g
c
d
(
210
,
33
)
gcd(210,-33)=gcd(210,33)
gcd(210,−33)=gcd(210,33)
210
=
33
∗
6
+
12
210=33*6+12
210=33∗6+12
33
=
12
∗
2
+
9
33=12*2+9
33=12∗2+9
12
=
9
∗
1
+
3
12=9*1+3
12=9∗1+3
9
=
3
∗
3
+
0
9=3*3+0
9=3∗3+0
g
c
d
(
210
,
33
)
=
3
gcd(210,33)=3
gcd(210,33)=3
求
g
c
d
(
210
,
−
33
)
=
210
x
−
33
y
gcd(210,-33)=210x-33y
gcd(210,−33)=210x−33y
3
=
12
−
9
∗
1
3=12-9*1
3=12−9∗1
=
12
−
(
33
−
12
∗
2
)
∗
1
=
−
33
+
12
∗
3
=12-(33-12*2)*1=-33+12*3
=12−(33−12∗2)∗1=−33+12∗3
=
−
33
+
(
210
−
33
∗
6
)
∗
3
=
210
∗
3
+
(
−
33
)
∗
19
=-33+(210-33*6)*3=210*3+(-33)*19
=−33+(210−33∗6)∗3=210∗3+(−33)∗19
所以
x
=
3
,
y
=
19
x=3,y=19
x=3,y=19