Cod sursa(job #2955507)
Utilizator | Data | 17 decembrie 2022 11:39:44 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fi("lgput.in");
ofstream fo("lgput.out");
int m = 1999999973, n, e, r;
long long p;
int main() {
fi >> n >> e;
r = 1;
for (p = n; e > 0; e >>= 1) {
if (e & 1)
r = (r * p) % m;
p = (p * p) % m;
}
fo << r;
return 0;
}
/*
(a * b) mod p = ((a mod p) * (b mod p)) mod p
*/