关于求最大公约数经典算法---辗转相除法的思考

来源:互联网 发布:ipad不下载软件 编辑:程序博客网 时间:2024/05/17 08:48

辗转相除法又称欧几里德算法,是现在最常见的求最大公约数的算法之一,而对于他的原理,我却是一概不知,今天又一次遇到,经网上查证,找到一段很有意义的话。

假设有两个数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整除。


完毕。希望对还没理解辗转相除法求最大公因(约)数原理的同学有所帮助。


上诉思路出自:数论吧用户长啸の卧龙,因为余数c也能被z整除,而余数c显然比b小,所以b和c有作为了新的a,b不断递归的求解,直至答案的获得,即b等于0了,此时的a即是原a,b的最大公约数。


原创粉丝点击