首先重点无论式辗转相除法还是更相减损术,最重要的原理是:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数 你可以这么理解, C=(A,B) ,C为A,B的最大公约数;即A,B都有公因数C,那么A-B也有公因数C,
A%C=0; B%C=0; A%C-B%C=(A-B)%C=0
假设有两个数x和y,存在一个最大公约数z=(x,y),即x和y都有公因数z,
那么x一定能被z整除,y也一定能被z整除,所以x和y的线性组合mx±ny也一定能被z整除。(m和n可取任意整数)
对于辗转相除法来说,思路就是:若x>y,设x/y=n余c,则x能表示成x=ny+c的形式,将ny移到左边就是x-ny=c,由于一般形式的mx±ny能被z整除,所以等号左边的x-ny(作为mx±ny的一个特例)就能被z整除,即x除y的余数c也能被z整除。一直下操作,
最后就是更相减损术是拿来相减,而辗转相除是取余;当两个数很接近的时候前者算法效率高,两个数差距很大的时候后者效率高!
来源:https://www.cnblogs.com/Left-Behind/p/7554000.html