斐蜀定理:ax+by=c存在整数解的充分必要条件是 c为gcd(a,b)的倍数
其他定理:gcd(a,b)=gcd(b,a%b);
如何递归的求xy呢?
设x,y和x1,y1是两组解,且满足:
由 a*x+b*y=gcd(a,b)
b*x1+(a%b)*y1=gcd(b,a%b)
得 a*x+b*y=b*x1+(a%b)*y1
a*x+b*y=b*x1+(a-a/b*b)*y1
a*x+b*y=a*y1+b*(x1-a/b*y1)
得 x=y1
y=x1-a/b*y1
即可得到xy与下一层x1,y1之间的关系
int ex_gcd(int a,int b){
//一直递归到最后一层 即 a为b的倍数 也就是 b==0
if(b==0) {
x=1,y=0;
return a;
}
int temp=ex_gcd(b,a%b);
int t=x;
x=y;y=t-a/b*y;
return temp;
}