#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 100010;
int a, b, ans;
int x,y;
int ex_gcd(int a, int b, int &x, int &y) {
if(b == 0) {
x = 1;
y = 0;
return a;
}
int ans = ex_gcd(b,a%b,x ,y);
int temp = x;
x = y;
y = temp - (a/b)*y;
return ans;
}
int calc(int a,int m) {
int gcd = ex_gcd(a,m,x,y);
return gcd == 1 ? (x+m)%m : -1;
}
int main() {
cin >> a >> b;
cout << calc(a,b);
return 0;
}
Noip 2012 同余方程
最新推荐文章于 2025-05-16 22:39:02 发布
本文详细介绍了扩展欧几里得算法,并通过一个具体的C++实现案例进行讲解。该算法用于求解最大公约数及贝祖等式系数,对于解决同余方程等问题有重要作用。

377

被折叠的 条评论
为什么被折叠?



