Cod sursa(job #3369604)
| Utilizator | Data | 21 octombrie 2026 10:50:49 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
long long modinv(long long a, long long n) {
long long x0 = 1, x1 = 0;
long long a0 = a, n0 = n;
while (n0) {
long long q = a0 / n0;
long long t = a0 - q * n0;
a0 = n0;
n0 = t;
t = x0 - q * x1;
x0 = x1;
x1 = t;
}
if (x0 < 0) x0 += n;
return x0;
}
int main() {
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
long long a, n;
fin >> a >> n;
fout << modinv(a, n);
return 0;
}
