求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
那么变形就是
那么也就是相当于求这个方程的最小正整数解
直接套上exgcd解出然后调整到最小正整数就是了
#include<bits/stdc++.h>
using namespace std;
inline int read(){
char ch=getchar();
int res=0;
while(!isdigit(ch))ch=getchar();
while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar();
return res;
}
#define ll long long
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==0){
x=1,y=0;return a;
}
ll d=exgcd(b,a%b,x,y);
ll z=x;x=y,y=z-y*(a/b);
return d;
}
ll a,b,x,y;
int main(){
cin>>a>>b;
ll d=exgcd(a,b,x,y);
cout<<(x%(b/d)+(b/d))%(b/d)<<'
';
}