辗转相除法--求最大

Posted xyfs99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了辗转相除法--求最大相关的知识,希望对你有一定的参考价值。

基本操作:设a<b,a÷b=q...r1

若r1=0,则最大公约数为r1

若r1!=0,则b÷r1=q...r2

r1÷r2=q...r3

直到rn为0为止

 

示例:280 380

280÷380=0...280

380÷280=1...100

280÷100=2...80

100÷80=1...20

80÷20=4...0

所以,最大公约数是20

 

代码一:循环

int gcd(int a,int b)//默认a<b
{
    while(a%b!=0)
    {
        int t=a%b;
        a=b;
        b=t;
    }
    return b;
}

代码二:递归

int gcd(int a,int b)//默认a<b
{
    return b==0?a:gcd(b,a%b);
}

 

以上是关于辗转相除法--求最大的主要内容,如果未能解决你的问题,请参考以下文章

怎么用辗转相除法求三个数的最大公约数

用辗转相除法求2个数的最大公约数,怎么做?

辗转相除法求两数的最大公约数的原理是啥?

python求最大公约数和最小公倍数

辗转相除法--求最大

[算法]辗转相除法求最大公约数