Pagini recente » Cod sursa (job #2506594) | Cod sursa (job #3004977) | Cod sursa (job #2555405) | Cod sursa (job #320127) | Cod sursa (job #704366)
Cod sursa(job #704366)
/*
* lgput.cpp
*
* Created on: Mar 2, 2012
* Author: Tibi
*/
#define DEBUG 0
#if DEBUG==1
#include <iostream>
#warning Debug is ON
#endif
#include <fstream>
using namespace std;
long long res[64];
long long solve (long long pow)
{
if (pow < 3) return res[pow];
long long i = 0;
while ((1<<i) < pow ) i++;
if (1<<i == pow) return res[i+1];
else return res[i+1] * solve(pow - (1<<i));
}
int main()
{
ifstream in ("lgput.in");
ofstream out ("lgput.out");
long long n, p, pleft;
long long i;
in>>n>>p;
res[0] = 1;
res[1] = n;
for (i = 1; (1<<i) <= p; i++)
res[i+1] = res[i] * res[i];
pleft = p - (1<<(i - 1));
out<<res[i] * solve(pleft);
#if DEBUG==1
cout<<res[i] * solve(pleft);
#endif
in.close();
out.close();
return 0;
}