Pagini recente » Cod sursa (job #3262025) | Cod sursa (job #2888359) | Cod sursa (job #3186001) | Cod sursa (job #504732) | Cod sursa (job #981232)
Cod sursa(job #981232)
#include <stdio.h>
#define DIV 1999999973
long long pow1(unsigned a, unsigned b)
{
long long exp = a;
while (--b)
exp = (exp * a) % DIV;
return exp;
}
long long pow2(long long n, long long p)
{
if (p == 0) return 1;
if (p == 1) return n;
if (p%2)
return n * pow2(n * n % DIV, p / 2) % DIV;
else
return pow2(n * n % DIV, p / 2) % DIV;
}
long long pow3(long long n, long long p)
{
long long n1 = n;
long long n2 = n * n;
while (p)
{
if (p & 1)
{
n1 = n1 * n2 % DIV;
n1 = n1 * n2 % DIV;
}
else
{
n2 = n2 * n1 % DIV;
n1 = n1 * n1 % DIV;
}
return n1;
}
int main()
{
unsigned N, P;
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
scanf("%d %d", &N, &P);
printf("%lld\n", pow3(N, P));
return 0;
}