(1)知识支持:
定理1:
Gcd(a,b) = Gcd(-a,b) = Gcd(a,-b) = Gcd( |a| , |b| )。
定理5:
设 Gcd(m,a) = 1,则有 Gcd(m,ab) = Gcd(m,b),这就是说“求 m 与另一个数的最大公约数时,可以把另一个数中与 m 互素的因数去掉”。
定理6:
设 Gcd(m,a) = 1,那么若 m | ab,则 m | b,这就是说“若一个数被 m 整除,则把这个数中与 m 互素的因数去掉后仍被 m 整除”。
定理7:
Lcm(a,b)*Gcd(a,b) = |ab|。
(2)欧几里得算法:
欧几里得算法是用来求 a 和 b 的最大公公约数(Greatest Common Divisor)的算法。
那么由欧几里得算法可得:
Gcd(a,b) = Gcd(b%a , a);
证明欧几里得算法正确性的关键是证明 Gcd(a,b)=Gcd(b%a,a); 令x=Gcd(a,b),y=Gcd(b%a,a); b%a可表示为a和b的线性组合:b%a=b-(b/a)*a; 因为 a%x=0,b%x=0; 所以 (b%a)%x=0; 故y%x=0; 又(b%a)%y=[b-(b/a)*a]%y=0,a%y=0; 根据同余定理可得 b%y-(b/a)*a%y=0,所以b%y=(b/a)*a%y=0; 所以x%y=0; 所以Gcd(a,b)=Gcd(b%a,a); 证毕;