首页 > 用户投稿

c语言求最小公倍数 谁来解释一下用辗转相除法求最两个数的最大公约数原理?

谁来解释一下用辗转相除法求最两个数的最大公约数原理?

除法求最大公约数的原理:设两个数为a和b(a>b),用gcd(a,b)表示a和b的最大公约数,r=a(modb)是a除以b的余数,k是a除以b的商,即a△b=k。。除法是证明gcd(a,b)=gcd(b,r)。第一步:设c=gcd(a,b),然后设a=mc,b=nc第二步:根据前提,r=a-kb=mcknc=(m-kn)c第三步:根据第二步的结果,c也是r的因子第四步:可以得出m-kn和n是互质(假设m-kn=xd,n=yd(d>1),然后m=knxd=kyd,xd=(kyx)d,然后a=mc=(ky)x)cd,b=nc=ycd,那么a和b有一个公约数cd>c,所以c不是a和b的最大公约数,这与前面的结论相矛盾),所以c也是b和r的最大公约数,所以gcd(b,r)=c,那么gcd(a,b)=gcd(b,r)。结束了。以上步骤的操作是基于开始时r≠0。也就是说,m和n也是互质。

c语言求最小公倍数怎么算最大公约数辗转相除法的原理

原文标题:c语言求最小公倍数 谁来解释一下用辗转相除法求最两个数的最大公约数原理?,如若转载,请注明出处:https://www.saibowen.com/tougao/21569.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。