-
食用之前——什么是辗转相除法:
用 “较大数” 除以 “较小数”,再用 “较小数” 除以 “第一余数”,再用“第一余数”除以 “第二余数”,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
代码原文:https://javaforall.cn/145574.html -
原理:设m>n,m=a*b,n=c*b,设b为最大公约数,自然有a>c且二者不存在非0以外的公约数。
每次循环:
m%n=t,其实t就是(a%c)*b,很自然m和n的最大公约数,其实就是t=(a%c)*b和n=c*b的最大公约数。由于c>a%c,因此m重新设为n,n设为较小的那个数,即t,然后循环这个过程,即a‘=c,c’=a%c继续这个过程,同样a’>c’且二者不存在非0以外的公约数。
如此反复,直到t==0,即t=0,意味着m%n除尽了。前面说过a’>c’且二者不存在非0以外的公约数,那么如果除尽了则意味着c’=1,那么意味着n=c’*b=1*b=b,得到最终结果。
200字学会辗转相除法原理详解
最新推荐文章于 2023-01-24 00:04:23 发布