Pagini recente » Cod sursa (job #3337329) | Cod sursa (job #1644291) | Cod sursa (job #2428193) | Cod sursa (job #3324069) | Cod sursa (job #3351115)
// https://infoarena.ro/problema/lgput
#include<fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long exp(long long n, long long 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() {
long long n, p;
fin >> n >> p;
fout << exp(n, p) << endl;
fin.close();
fout.close();
return 0;
}