Cod sursa(job #2633871)
Utilizator | Data | 8 iulie 2020 23:38:58 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.33 kb |
#include <fstream>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
const int MOD=2e9-27;
int pow(int N, int P) {
if(P==0)
return 1;
if(P&1) {
return (1LL*N*pow((1LL*N*N)%MOD, P/2))%MOD;
}
return pow((1LL*N*N)%MOD, P/2);
}
int main() {
int N, P;
cin>>N>>P;
cout<<pow(N, P)<<'\n';
return 0;
}