Pagini recente » Cod sursa (job #298813) | Cod sursa (job #3286899) | Cod sursa (job #3195032) | Cod sursa (job #2465993) | Cod sursa (job #1653527)
#include <fstream>
using namespace std;
FILE * fin = fopen("inversmodular.in", "r");
FILE * fout = fopen("inversmodular.out", "w");
void euclide(int a, int b, int& d, int&x, int& y);
int main()
{
int a, n, d, x, y;
fscanf(fin, "%d %d", &a, &n);
euclide(a, n, d, x, y);
while (x<0) x=x+n;
fprintf(fout, "%d\n", x);
fclose(fin);
fclose(fout);
return 0;
}
void euclide(int a, int b, int& d, int&x, int& y)
{
if (b==0)
{
d=a;
x=1;
y=0;
return;
}
int x0, y0;
euclide(b, a%b, d, x0, y0);
x=y0;
y=x0-a/b*y0;
}