Cod sursa(job #2237980)
Utilizator | Data | 4 septembrie 2018 02:27:40 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
const uint64_t kMod=1999999973;
uint64_t fast_pow(uint64_t base,uint64_t power) {
uint64_t result=1;
while(power) {
if(power%2)
result=(result*base)%kMod;
power=power/2;
base=(base*base)%kMod;
}
return result;
}
int main() {
ifstream fin("lgput.in");
ofstream fout("lgput.out");
uint64_t base,power;
fin>>base>>power;
fout<<fast_pow(base,power);
return 0;
}