Pagini recente » Cod sursa (job #2188188) | Cod sursa (job #1968004) | Cod sursa (job #1101689) | Cod sursa (job #1547215) | Cod sursa (job #1815803)
#include <stdio.h>
void Euclid(int a, int b, int *x, int *y)
{
if (b == 0) {
*x = 1;
*y = 0;
return;
}
int xp, yp;
Euclid(b, a % b, &xp, &yp);
*x = yp;
*y = xp - (a / b) * yp;
}
int InversModular(int a, int b)
{
int x, y;
Euclid(a, b, &x, &y);
while (x < 0)
x += b;
return x;
}
int main()
{
FILE *fin = fopen("inversmodular.in", "r");
FILE *fout = fopen("inversmodular.out", "w");
int a, b;
fscanf(fin, "%d%d", &a, &b);
fprintf(fout, "%d\n", InversModular(a, b));
return 0;
}