Pagini recente » Cod sursa (job #3184170) | Cod sursa (job #1071888) | Cod sursa (job #2290658) | Cod sursa (job #1993810) | Cod sursa (job #1059979)
//
// main.c
// lgput
//
// Created by Alexandru Bâgu on 12/17/13.
// Copyright (c) 2013 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
typedef unsigned int uint;
typedef unsigned long long ulong;
ulong lgpow(ulong n, int p, uint mod)
{
if(p < 0) return lgpow(n, -p, mod);
if(p == 0) return 1;
if(p == 1) return n;
if(p&1) return (n * lgpow((n*n) % mod, (p^1)>>1, mod)) % mod;
else return lgpow((n*n) % mod, p>>1, mod) % mod;
}
int main(int argc, const char *argv[])
{
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
const uint mod = 1999999973;
ulong n;
int p;
scanf("%lld %d", &n, &p);
printf("%lld\n", lgpow(n, p, mod) % mod);
return 0;
}