欧几里得算法,也叫做辗转相除法,用来求解最大公因数。求解的过程网上有,这里不表述,这里主要是结合教材上的推导更进一步。
设d为正整数a和b的最大公约数,记作d=gcd(a,b),这里约定a≥b,则a=q1b+r1, r1≠0,d既然能同时整除a和b,那么必然也能整除a-q1b=r1,即d也是b和r1的公约数,剩下的只需要证明d就是b和r1的最大公约数。假设存在正整数c≥d,可以整除b和r1,那么c也能整除q1b+r1=a,由于d就是a和b的最大公约数,所以必然有c≤d,与假设相矛盾,所以d就是b和r1的最大公约数。
辗转相除法的思想就是用较小的整数去除较大的整数,如果能整除则较小的整数就是最大公约数,如果不能整除,则进一步转化为求除数和余数之间的最大公约数问题。