GCD定理
GCD定理是欧几里得算法的灵魂。欧几里得算法就是我们以前说的“辗转相除法”。
GCD定理:
gcd(a,b)=gcd(b,a%b)
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
a
%
b
)
证明
我们的证明就是要证明上面两者相互能整除。
设
gcd(a,b)=d
g
c
d
(
a
,
b
)
=
d
所以
d|a且d|b
d
|
a
且
d
|
b
。
由带余除法可以得出:
a%b=a−qb
a
%
b
=
a
−
q
b
其中q为a/b向下取整。
所以
a%b
a
%
b
是a和b的一个线性组合。
所以
d|a%b
d
|
a
%
b
又因为
d|b
d
|
b
所以
d|gcd(b,a%b)
d
|
g
c
d
(
b
,
a
%
b
)
即
gcd(a,b)|gcd(b,a%b)
g
c
d
(
a
,
b
)
|
g
c
d
(
b
,
a
%
b
)
证明另一个结论和上述过程一模一样。