比赛 |
20160303 |
评测结果 |
AAAAAAAAAA |
题目名称 |
同余方程 |
最终得分 |
100 |
用户昵称 |
农场主 |
运行时间 |
0.002 s |
代码语言 |
C++ |
内存使用 |
0.29 MiB |
提交时间 |
2016-03-03 19:40:22 |
显示代码纯文本
#include<cstdio>
using namespace std;
typedef long long LL;
LL d=2;
void gcd(LL a,LL b,LL& d,LL& x,LL& y){
if (!b){d=a;x=LL(1);y=LL(0);}
else {gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL inv(LL a,LL n){
LL x,y;
gcd(a,n,d,x,y);
return d==1 ? (x+n)%n : -1;
}
int main()
{
freopen("mod.in","r",stdin);
freopen("mod.out","w",stdout);
LL a,b;
scanf("%lld%lld",&a,&b);
LL ans=inv(a,b);
while (ans<=0) {ans+=b/d;}
printf("%lld",ans);
return 0;
}