Pagini recente » Cod sursa (job #462813) | Cod sursa (job #3199152) | Cod sursa (job #3352013) | Cod sursa (job #462161) | Cod sursa (job #3351114)
// https://infoarena.ro/problema/lgput
#include<fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long exp(int n, int p) {
if(p == 0) {
return 1; // cazul de baza: n^0 = 1
}
long long e = exp(n, p / 2);
// folosim exponențiere rapidă
// daca p este par: n^p = (n^(p/2))^2
// daca p este impar: n^p = n * (n^(p/2))^2
if(p % 2 == 0)
return e * e;
else
return n * e * e;
}
int main() {
int n, p;
fin >> n >> p;
fout << exp(n, p) << endl;
fin.close();
fout.close();
return 0;
}