计蒜客练习题:同余方程
题目
样例
思路
利用扩展欧几里得公式,计算exgcd(a,m)即可。
代码
#include<iostream>
using namespace std;
int a,b;
int exgcd(int a,int b,int &x,int &y)
{
int d=a;
if(b!=0)
{
d=exgcd(b,a%b,y,x);
y-=a/b*x;
}
else
{
x=1;
y=0;
}
return d;
}
int inverse(int a,int m)
{
int x,y;
exgcd(a,m,x,y);
return (x%m+m)%m;
}
int main()
{
scanf("%d %d",&a,&b);
printf("%d",inverse(a,b));
return 0;
}