拓展gcd解不定线性方程ax+by=c模版

拓展gcd解不定线性方程ax+by=c模版

/** 解不定方程 ax+by=c */

ll a,b,c;
ll x,y;

ll exgcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0){
        x=1;y=0;
        return a;
    }
    ll r=exgcd(b,a%b,x,y);
    ll t=y;
    y=x-a/b*y;
    x=t;
    return r;
}

bool NLE(ll a,ll b,ll c,ll &x,ll &y) /**解不定方程 ax+by=c;*/
{
    ll d=exgcd(a,b,x,y);
    if(c%d) return false;
    x*=c/d;               ///特解
    y*=c/d;
    ///x=x+k*(b/d); ///所有的整数解(k为整数)
    ///y=y-k*(a/d);
    return true;
}
View Code

 

posted @ 2015-06-12 22:49  __560  阅读(170)  评论(0编辑  收藏  举报