Cod sursa(job #2700926)
Utilizator | Data | 29 ianuarie 2021 12:23:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("lgput.in");ofstream fout("lgput.out");
long long int n,p;
long long int exp(int n,int p){
if(p<0)return exp(1/n,-p);
else if(p==0)return 1;
else if(p==1)return n;
else if(p%2==0)return exp(n*n,p/2);
else return n*exp(n*n,(p-1)/2);
}
int main() {
fin>>n>>p;
fout<<exp(n,p);
return 0;
}