Cod sursa(job #1394015)
Utilizator | Data | 19 martie 2015 22:26:57 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
int x, y;
void gcd(int a, int b) {
if (!b) {
x = 1;
y = 0;
} else {
gcd(b, a % b);
int aux = x;
x = y;
y = aux - y * (a / b);
}
}
int main (void) {
FILE *f;
int a, n;
f = fopen("inversmodular.in", "r");
fscanf(f, "%d%d", &a, &n);
fclose(f);
gcd(a, n);
if (x <= 0)
x = n + x % n;
f = fopen("inversmodular.out", "w");
fprintf(f, "%d\n", x);
fclose(f);
return 0;
}