Pagini recente » Cod sursa (job #1493855) | Cod sursa (job #2082581) | Cod sursa (job #269362) | Cod sursa (job #2293972) | Cod sursa (job #2759679)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
void gcdExtended(int n, int a, int& x, int& y)
{
if (n % a == 1)
{
x = 1;
y = -1;
return;
}
int x1, y1;
gcdExtended(a, n % a, x1, y1);
x = y1;
y = x1 - (n / a) * y1;
}
int invMod(int n, int a)
{
int x, y;
gcdExtended(n, a, x, y);
return (1ll * y + n) % n;
}
int main()
{
int a, n;
fin >> a >> n;
fout << invMod(n, a);
return 0;
}