首页 > 代码库 > 拓展欧几里得模板

拓展欧几里得模板

数论拓展欧几里得,计算mx+ny=d的一组解(m。n为已知)

int xx=x+n/d*i;

int yy=y-m/d*i;//xx,yy分别为其它通解

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


拓展欧几里得模板