Pagini recente » Cod sursa (job #2050560) | Cod sursa (job #357461) | Cod sursa (job #568022) | Cod sursa (job #2404625) | Cod sursa (job #2227828)
#include <iostream>
#include <fstream>
using namespace std;
long long pow(unsigned int n, unsigned int p)
{
if (p == 0)
return 1;
if (n == 0)
return 0;
if (n == 1)
return 1;
int logP = 0;
unsigned int pp = p;
while (pp >>= 1)
{
++logP;
}
long long k[33];
k[0] = n;
for (int i = 1; i <= logP; ++i)
k[i] = k[i - 1] * k[i - 1];
long long x = 1;
int i = 0;
do
{
if (p & 1)
x *= k[i];
++i;
} while (p >>= 1);
return x;
}
int main()
{
ifstream in("lgput.in");
ofstream out("lgput.out");
unsigned int n, p;
in >> n >> p;
long long x = pow(n, p);
out << x % 1999999973 << "\n";
return 0;
}