思路: exgcd的例题,exgcd的作用是在辗转相除法求最大公约数的过程中把x,y一起求了,这里最大公约数给了1,让我们求x,需要注意的是,x可能求成负数,需要写成(x+b)%b使其变成正数。
代码:
#include<bits/stdc++.h>
using namespace std;
long long a,b,x,y;
void exgcd(long long a,long long b)
{
if(b==0){
x=1;
y=0;
return;
}
exgcd(b,a%b);
long long z=x;
x=y;
y=z-y*(a/b);
}
int main()
{
scanf("%lld%lld",&a,&b);
exgcd(a,b);
x=(x+b)%b;
printf("%lld\n",x);
return 0;
}