GCD和扩展GCD

gcd(a, b)用于求解自然数a,b的最大公约数

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

extgcd(a, b, x, y)用于求解方程ax+by = 1的一组解,并返回a,b的最大公约数

int exgcd(int a, int b, int &x, int &y)
{
    int d = a;
    if (b!=0) {
        d = exgcd(b, a%b, y, x);
        y -= (a/b)*x;
    }
    else {
        x = 1; y = 0;
    }
    return d;
}

暂不给出证明过程,有时间再回来补,不过多半是没时间。。。

原文地址:https://www.cnblogs.com/wizarderror/p/11225854.html