Pagini recente » Cod sursa (job #3290558) | Cod sursa (job #1478549) | Cod sursa (job #2433218) | Cod sursa (job #1335637) | Cod sursa (job #2039030)
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL a, n, d;
pair<LL, LL> euclid(LL a, LL b) {
if(!b) {
d = a;
return {1, 0};
}
auto result = euclid(b, a % b);
return { result.second, result.first - (a / b) * result.second };
}
void citire() {
scanf("%lld %lld", &a, &n);
}
int main() {
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
citire();
auto result = euclid(a, n);
LL invers = result.first;
while(invers < 0) invers += n;
printf("%lld", invers);
return 0;
}