比赛时候居然没看出来。。眼拙了 做题少了……找一个k令k*m%n=1...这不就是求x*m = 1(mod n)。。。
倮倮倮
代码如下:
#include <bits/stdc++.h>
using namespace std;
int Gcd(int a,int b,int &x,int &y)
{
if(!b)
{
x = 1;
y = 0;
return a;
}
int ans,tmp;
ans = Gcd(b,a%b,x,y);
tmp = y;
y = x-a/b*y;
x = tmp;
return ans;
}
int cal(int m,int mod)
{
int x,y,gcd;
gcd = Gcd(m,mod,x,y);
x = x/gcd;
return (x+mod)%mod;
}
int main()
{
int m,n;
while(~scanf("%d %d",&m,&n))
{
printf("%d\n",cal(m,n));
}
return 0;
}