Cod sursa(job #3251224)
Utilizator | Data | 25 octombrie 2024 14:30:06 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <bits/stdc++.h>
using namespace std;
pair<int, int> extended_gcd(int a, int b) {
if (b == 0) {
return {1, 0};
}
pair<int, int> r2 = extended_gcd(b, a % b);
return {r2.second, (r2.first - a / b * r2.second)};
}
int inv(int x, int MOD) {
int x1 = extended_gcd(x, MOD).first;
if (x1 < 0)
x1 += MOD;
return x1;
}
int main() {
// freopen("inversmodular.in", "r", stdin);
// freopen("inversmodular.out", "w", stdout);
int N, M;
cin >> N >> M;
cout << inv(N, M);
}