用来求ax+by=gcd(a,b)的一组整数解
当b=0时,显然x=1,y=0是一组解
当b=0时,
gcd(a,b)gcd(b,a%b)=ax+by=bx1+(a%b)y1=bx1+(a−⌊ba⌋×b)y1=ay1+b(x1−bay1)
所以:x=y1,y=x1−bay1
通解:
{x=x0+gcd(a,b)b∗ky=y0−gcd(a,b)a∗k(考虑ax+by=0构造)
int exgcd(int a,int b,int &x,int &y){
if (b==0){
x=1,y=0;
return a;
}
int x1,y1,d;
d= exgcd(b,a%b,x1,y1);
x=y1,y=x1-a/b*y1;
return d;
}
求不定方程ax+by=c的一组整数解:
如果gcd(a,b)∣c,一定有整数解,否则没有
的一组解,在乘以gcd(a,b)c,即可得到原方程的特解。