Cod sursa(job #3357803)
| Utilizator | Data | 13 iunie 2026 15:05:37 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
typedef unsigned long long u64;
u64 pow(u64 base, u64 exponent, u64 prime) {
u64 ans = 1;
while (exponent > 0) {
if (exponent & 1) {
ans = (ans * base) % prime;
}
base = (base * base) % prime;
exponent >>= 1;
}
return ans;
}
int main() {
std::ifstream input("inversmodular.in");
std::ofstream output("inversmodular.out");
u64 a, n;
input >> a >> n;
output << pow(a, n - 2, n);
return 0;
}