Cod sursa(job #2955506)
Utilizator | Data | 17 decembrie 2022 11:37:05 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.4 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;
p = p * p;
}
fo << r;
return 0;
}
/*
(a * b) mod p = ((a mod p) * (b mod p)) mod p
*/