Cod sursa(job #2504424)
| Utilizator | Data | 4 decembrie 2019 21:52:21 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
const int MOD = 1e9 + 7 ;
FILE *in = fopen("inversmodular.in", "r"), *out = fopen("inversmodular.out", "w") ;
int lgput(int a, int b) {
int ret(1) ;
for ( ; b ; b >>= 1) {
if (b & 1) {
ret = ret * a % MOD ;
}
a = a * a % MOD ;
}
return ret ;
}
int main() {
int a, b ;
fscanf(in, "%d %d", &a, &b) ;
int ans = lgput(a, b - 2) ;
fprintf(out, "%d\n", ans % b) ;
}
