Pagini recente » Cod sursa (job #113180) | Cod sursa (job #1459171) | Cod sursa (job #2676251) | Cod sursa (job #2308095) | Cod sursa (job #2268600)
#include <bits/stdc++.h>
#define ll long long
std::ifstream InFile("inversmodular.in");
std::ofstream OutFile("inversmodular.out");
ll A, N;
void Euclid(ll a, ll b, ll &X, ll &Y) {
if (b==0) {
X = 1;
Y = 0;
return;
} Euclid(b, a%b, X, Y);
ll aux = Y;
Y = X - (a/b)*Y;
X = aux;
}
void Citire() {
InFile >> A >> N;
}
void Rezolvare() {
ll Aux, Inv = 0;
Euclid(A, N, Inv, Aux);
if (Inv <= 0) Inv = N + Inv%N;
OutFile << Inv << '\n';
}
int main()
{
Citire();
Rezolvare();
return 0;
}