Luogu P1082 同余方程 拓展欧几里得
模板
注意exgcd中把y当作x丢下去后y = x',x = y',所以y = x'-a/b*y' = y-a/b*x !
1 #include<iostream> 2 using namespace std; 3 typedef long long ll; 4 5 void exgcd(ll a,ll b,ll& d,ll& x,ll& y){ 6 if(!b){x = 1,y = 0,d = a;return;} 7 exgcd(b,a%b,d,y,x);y -= a/b*x; 8 } 9 10 ll a,b,d,x,y; 11 12 int main(){ 13 cin >> a >> b; 14 exgcd(a,b,d,x,y); 15 cout << (x%(b/d)+b/d)%(b/d); 16 return 0; 17 }