给你 a,b ,求 x,y 使得 xa+yb=gcd(a,b)
假设已经求出了
x,y
满足
xb+y(amodb)=gcd(a,b)
xb+y(amodb)xb+y(a−⌊ab⌋b)xb+ya−y⌊ab⌋bya+(x−y⌊ab⌋)b=gcd(a,b)=gcd(a,b)=gcd(a,b)=gcd(a,b)
时间复杂度: O(logn)
代码
ll exgcd(ll a,ll b,ll &x,ll &y)
{
if(!b)
{
x=1;
y=0;
return a;
}
ll ab=a/b;
ll c=a-b*ab;
ll d=exgcd(b,c,y,x);
y-=x*ab;
return d;
}