大家好,我是BUG,继算法专辑之后,我现在发出了数学专辑,研究和编程相关的数学问题。
讲解之前,别忘了收藏我的编程专题哦
辗转相除法的基本概念
它用来求最大公约数。
基本概念用简单一句话概括就是 。
每次将迭代为
,
迭代为
,直到
为零,
为最大公因数。
证明
有一个数和数
他们的公约数是
商(向下取整,如5➗2=2)为
就可以表示为
如果是
和
的公约数,它应该整除
和
。若它整除
,那它就也能整除
,现在只用确保它能整除
和
剩余的
部分。此时将
迭代为
,
迭代为
。直到
不能再除了,
就是最大公约数了。
示例代码
这里仅仅提供函数哦,其它请自行补全
int gcd(int a,int b){
if(a%b==0)return b;
gcd(b,a%b);
}
网友评论