Pagini recente » Cod sursa (job #2352846) | Cod sursa (job #2418802) | Cod sursa (job #2840406) | Cod sursa (job #1274435) | Cod sursa (job #2173930)
#include <fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
void euclid(long long a, long long b, long long *d, long long *x, long long *y)
{
if(b == 0)
{
*d = a;
*x = 1;
*y = 0;
return;
}
long long x0, y0;
euclid(b, a % b, d, &x0, &y0);
*x = y0;
*y = x0 - (a / b) * y0;
}
int main()
{
long long A, N, d, x, y;
f >> A >> N;
euclid(A, N, &d, &x, &y);
x %= N;
if(x < 0)
x += N;
g << x << "\n";
return 0;
}