Pagini recente » Cod sursa (job #1563809) | Cod sursa (job #2792222) | Cod sursa (job #3326454) | Cod sursa (job #358888) | Cod sursa (job #3312749)
#include <bits/stdc++.h>
using namespace std;
#include <bits/stdc++.h>
// ax + by = d
void euclid(int a, int b, int* d, int* x, int* y) {
if (!b) {
*d = a;
*x = 1;
*y = 0;
} else {
int x0;
int y0;
euclid(b, a % b, d, &x0, &y0);
*x = y0;
*y = x0 - (a / b) * y0;
}
}
int main() {
#ifndef LOCAL
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
int A;
int N;
cin >> A >> N;
int X;
int Y;
int D;
euclid(A, N, &D, &X, &Y);
assert(D == 1);
cout << X << endl;
return 0;
}