What(是什么——定义)
欧几里德算法(Euclidean algorithm)是求两个正整数之最大公因子的算法。
设两数为a、b(a>b),求(a,b)的步骤如下:
①用a除以b,得a=bq+r1(0≤r1)。
②若r1=0,则(a,b)=b;
③若r1≠0,则再用b除以r1,得b=r1q+r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,如此下去,直到能整除为止。其最后一个为被除数的余数的除数即为(a, b)。例如:a=25,b=15,a/b=10,b/10=15,10/5=20,最后一个为被除数余数的除数就是5,5就是所求最大公约数。
Why(为什么——证明)
定理:设a,b,c是不全为0的整数,若存在q∈Z,使得a=bq+c,则(a,b)=(b,c)
证明:由(b,c)|b,(b,c)|c及a=bq+c,知(b,c)|a,因此(b,c)是a和b的公因数,但(a,b)是a和b的最大公因数,所以(b,c)<=(a,b),同理可得(b,c)>=(a,b),则(b,c)==(a,b)
利用此定理证明辗转相除法:
设a>0