1.扩欧
a*x1+b*y1=gcd(a,b);
b*x2+(a%b)*y2=gcd(b, (a%b))= gcd(a,b);
a%b=a-(a/b)*b;
联立可得
x1=y2
y1=x2-(a/b)*y2;
递归的边界为b=0
此时x=1,y=0,然后回溯即可。
为什么要x=1,y=0呢?
因为此时gcd(a,b)=gcd(a,0)=a,故a*1+b*0=gcd(a,b)=a;
时间: 2024-09-30 07:24:30
1.扩欧
a*x1+b*y1=gcd(a,b);
b*x2+(a%b)*y2=gcd(b, (a%b))= gcd(a,b);
a%b=a-(a/b)*b;
联立可得
x1=y2
y1=x2-(a/b)*y2;
递归的边界为b=0
此时x=1,y=0,然后回溯即可。
为什么要x=1,y=0呢?
因为此时gcd(a,b)=gcd(a,0)=a,故a*1+b*0=gcd(a,b)=a;