题目传送门:https://www.luogu.org/problemnew/show/P1082
题意:
求关于 x 的同余方程 ax≡1(mod b)的最小正整数解。
思路:
ax≡1(mod b)
ax mod b=1
ax-by=1
用扩展欧几里得即可。
代码:
#include<cstdio>
int a,b,x,y;
int gcd(int x,int y)
{
return !y?x:gcd(y,x%y);
}
int exgcd(int a,int b,int &x,int &y)
{
if(!b)
{
x=1;
y=0;
return a;
}
int tmp=exgcd(b,a%b,y,x);
y-=a/b*x;
return tmp;
}
int main()
{
scanf("%d %d",&a,&b);
exgcd(a,b,x,y);
printf("%d",(x+b)%b);
}