辗转相除法, 欧几里德算法(Euclidean algorithm)

证明:

 

设两数为a、b(a>b),用  表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即  。辗转相除法即是要证明  。
第一步:令  ,则设 
第二步:根据前提可知 
第三步:根据第二步结果可知,  也是  的因数
第四步:可以断定  与  互质(这里用反证法进行证明:设  ,则  ,则  ,则a与b的一个公约数  ,故c非a与b的最大公约数,与前面结论矛盾,因此c也是b与r的最大公约数)从而可知  ,继而  。
证毕
注:以上步骤的操作是建立在刚开始时  的基础之上的,即m与n亦互质。

 

伪代码描述如下:

function gcd(a,b)

{

if b< >0

return gcd(b,a mod b);

else

return a;

}

 

参考

https://baike.baidu.com/item/%E8%BE%97%E8%BD%AC%E7%9B%B8%E9%99%A4%E6%B3%95/4625352?fr=aladdin

转载于:https://my.oschina.net/zhongwenhao/blog/3003705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值