Cod sursa(job #3227193)
Utilizator | Data | 26 aprilie 2024 22:25:05 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <stdio.h>
void inv_modular(int a, int b, int *x, int *y) {
if(!b) {
*x = *y = 1;
return;
}
int x1, y1;
inv_modular(b, a%b, &x1, &y1);
*x = y1;
*y = x1 - (a / b) * y1;
}
int main() {
int A, N;
FILE *in = fopen("inversmodular.in", "r");
FILE *out = fopen("inversmodular.out", "w");
fscanf(in, "%d %d", &A, &N);
fclose(in);
int x, y;
inv_modular(A, N, &x, &y);
while(x < 0) {
x += N;
}
printf("%d", x);
// fprintf(out, "%d", x);
fclose(out);
return 0;
}