首页 > 技术文章 > 最大公约数 最小公倍数

Jason66661010 2020-05-01 10:52 原文

最大公约数

递归版:

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

非递归版:

int gcd(int a, int b)
{
    if (!a)
        return b;
    int c; 
    while (b)
    {// 非递归版
        c = b; 
        b = a%b;
        a = c;
    }
    return a;
}

最小公倍数

最小公倍数=两整数的乘积÷最大公约数

但要先除后乘,避免 a*b 溢出!

推荐阅读