第五章:整除性与最大公因数(2)

欧几里得算法#

求两个数的最大公因数的最有效方法是欧几里得算法,这是由直到余数为零的一系列带余除法组成的。在叙述一般方法前,我们用个例子来说明:
我们计算gcd(36,132) gcd(36,132),第一步是132 132 除以36 36 得商3 3 与余数24 24。我们将此记作

132=336+24132 = 3·36 +24

第二步是取36 36,用前一步的余数24 24 除以36 36

36=124+1236 = 1·24 +12

下一步,用12 12 除以24 24 求得余数0 0

24=212+024 = 2·12 + 0

欧几里得算法说明当得到余数0 0 时,则前一步的余数就是最初两个数的最大公因数,所以在这种情况我们求得gcd(132,36)=12 gcd(132,36)=12
注意如何在每一步用数A A 除以B B 得到商Q Q 和余数R R,换句话说,

A=QB+RA = Q·B +R

然后在下一步用数B BR R 代替原来的 AAB B,继续此过程直到得到余数0 0 为止。此时,前一步的余数R R 就是最初两个数的最大公因数。

欧几里得算法:要计算两个数a ab b 的最大公因数,先令r1=a,r0=b r_{-1}=a,r_0=b,然后计算相继的商和余数

ri1=qi1ri+ri1(i=0,1,2,...)r_{i-1}=q_{i-1}·r_{i}+r_{i-1}(i = 0,1,2,...)

直到某余数rn+1 r_{n+1}0 0。最后的非零余数rn r_n 就是a ab b 的最大公因数

本作品采用《CC 协议》,转载必须注明作者和本文链接
Hacking