欧几里得(模板)

来源:互联网 发布:淘宝二手书可靠吗 编辑:程序博客网 时间:2024/09/21 08:15
int gcd(int n,int m)//n>m{    //最大公约数    int r;    while(m)    {        r = n%m;        n = m;        m = r;    }    return n;}int kgcd(int a,int b){    if(!a) return b;    if(!b) return a;    if(!(a&1) && !(b&1))        return kgcd(a>>1,b>>1)<<1;    else if(!(b&1)) return kgcd(a,b>>1);    else if(!(a&1)) return kgcd(a>>1,b);    else return kgcd(abs(a-b),min(a,b));}//扩展欧几里得//求方程ax+by+c = 0有多少整数解int extgcd(int a,int b,int &x,int &y){    if(!b)    {        x=1;        y=0;        return a;    }    int d = extgcd(b,a%b,x,y);    int t = x;    x=y;    y=t-a/b*y;    return d;}

1 0
原创粉丝点击