Pagini recente » Cod sursa (job #501574) | Cod sursa (job #230245) | Cod sursa (job #741881) | Cod sursa (job #369362) | Cod sursa (job #1885947)
#include <cstdio>
using namespace std;
void gcd(int x, int y, int &a, int &b) {
if(y == 0) {
a = 1;
b = 0;
} else {
gcd(y, x % y, a, b);
int backup = a;
a = b;
b = backup - b * (x / y);
}
}
int main() {
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
int a, n, x, y;
scanf("%d%d", &a, &n);
gcd(a, n, x, y);
if(x <= 0)
x = n + x % n;
printf("%d\n", x);
return 0;
}