Pagini recente » Cod sursa (job #2638098) | Cod sursa (job #362951) | Cod sursa (job #842401) | Cod sursa (job #1433857) | Cod sursa (job #981230)
Cod sursa(job #981230)
#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 x1 = x;
long long x2 = x * x;
while (p)
{
if (p & 1)
{
x1 = x1 * x2 % DIV;
x1 = x1 * x2 % DIV;
}
else
{
x2 = x2 * x1 % DIV;
x1 = x1 * x1 % DIV;
}
return x1;
}
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;
}