先变成ax+by=1的形式,然后就是同余方程。
exgcd直接乱搞
c o d e code code
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll a, b, x, y;
ll exgcd(ll a, ll b, ll &x, ll &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int r=exgcd(b, a%b, y, x);
y-=a/b*x;
return r;
}
int main()
{
scanf("%lld%lld", &a, &b);
exgcd(a, b, x, y);
printf("%lld", (x+b)%b);
return 0;
}