拓展欧几里得
适用范围:要用到拓展欧几里得的题
1.同余方程(ax+by=gcd(x,y))
std.cpp
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue>
using namespace std;
long long a,b;
int x,y;
int gcd(long long a,long long b)
{
if(!b){x=1;y=0;return a;}
long long res = gcd(b,a%b);
int t = x;
x = y;
y = t-a/b*y;
return res;
}
int main()
{
cin >> a >> b; a/=gcd(a,b); b/=gcd(a,b);
int k = gcd(a,b);
int p = b/k;
x=((x/k)%p+p)%p;
cout << x << endl;
}