最大公因数与最小公倍数

最大公因数模板

位运算:

inline int gcd(int a,int b)
{
    if(!a) return b;
    if(!b) return a;
    while(b^=a^=b^=a%=b);
    return a;
}

递推

inline int gcd(int a,int b)
{
    int r;
    while(b>0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}

普通

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

最小公倍数模板

需要和最大公因数函数共同使用

inline int lcm(int a,int b)
{
    return a/gcd(a,b)*b;
}
posted @ 2021-11-18 18:21  yhang323  阅读(76)  评论(0)    收藏  举报