Pagini recente » Cod sursa (job #1547493) | Cod sursa (job #2707805) | Cod sursa (job #3147727) | Cod sursa (job #669083) | Cod sursa (job #584197)
Cod sursa(job #584197)
#include <fstream>
#include <cmath>
#include <iostream>
using namespace std;
unsigned long long int p, x, x1, x2, p1, p2;
int main()
{
ifstream fin("lgput.in");
ofstream fout("lgput.out");
fin >> x >> p;
x1 = 1;
x2 = 1;
x = x % 1999999973;
if(p > 1)
{
p1 = 1;
x1 = x;
while(p1 <= p)
{
p1 *= 2;
x1 = x1 * x1 % 1999999973;
}
x1 = sqrt(x1);
p1 /= 2;
p2 = p-p1;
for(unsigned long long int i=1; i<=p2; i++)
{
x2 = x2 * x % 1999999973;
}
fout << x1 * x2 % 1999999973;
}
else
{
if(p == 0)
fout << 1;
else
fout << x;
}
fout.close();
fin.close();
return 0;
}