比赛 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;
}