Pagini recente » Cod sursa (job #1450924) | Cod sursa (job #3290530) | Cod sursa (job #1314500) | Cod sursa (job #2267518) | Cod sursa (job #2664354)
#include <bits/stdc++.h>
using namespace std;
#define f1 "inversmodular.in"
#define f2 "inversmodular.out"
ifstream in(f1);
ofstream out(f2);
void eclext(int a, int b, int *d, int *x, int *y) {
if (b == 0) {
*d = a;
*x = 1;
*y = 0;
} else {
int x0, y0;
eclext(b, a % b, d, &x0, &y0);
*x = y0;
*y = x0 - (a / b) * y0;
}
}
int main() {
int a, n, d, x, y;
in >> a >> n;
eclext(a, n, &d, &x, &y);
if(x > 0)
out << x;
else
out << n + x % n;
return 0;
}