Cod sursa(job #1698680)
| Utilizator | Data | 5 mai 2016 00:28:43 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
#include <iostream>
std::ifstream f("lgput.in");
std::ofstream g("lgput.out");
const int toDiv = 1999999973;
int pow(int n, int p){
if(p == 0){
return 1;
}
int sqr = pow(n,p/2);
if(p % 2 == 0){
return (sqr * sqr) % toDiv;
}else{
return (sqr * sqr * n) % toDiv;
}
}
int main(){
int N, P;
f >> N >> P;
g << pow(N,P);
f.close();
g.close();
return 0;
}