最大公约数和最小公倍数

每次需要用到的时候总是会忘记怎么求最大公约数,这次写在博客上,天天看,背都要把它背下来。

高效简洁的辗转相除法:

int gdc(int a,int b)
{
    if(b == 0)
        return a;
    return gdc(b,a%b);
}
///(36,20)-(20,16)-(16,4)-(4,0)-(0,4)
///(20,36)-(36,20)-(20,16)-(16,4)-(4,0)-(0,4)

简单低效的辗转相减法:

int gcd(int a,int b)
{
    while(a!=b)
    {
        if(a>b) a=a-b;
        else b=b-a;
    }
    return a;
}

最小公倍数(LCM)=两数之积/最大公约数

posted @ 2018-08-21 12:56  守林鸟  阅读(132)  评论(0编辑  收藏  举报