Pagini recente » Cod sursa (job #1647689) | Cod sursa (job #2200390) | Cod sursa (job #1394641) | Cod sursa (job #823303) | Cod sursa (job #2240935)
#include <fstream>
#define MODULO_VAL 1999999973
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
unsigned long long N, P;
unsigned long long f(unsigned long long N, unsigned long long P) {
if (P == 0) return 1;
if (P == 1) return (N % MODULO_VAL);
if (P % 2 == 0) {
return ((f(N, P / 2) % MODULO_VAL) * (f(N, P / 2) % MODULO_VAL) % MODULO_VAL);
} else {
return (((f(N, P / 2) % MODULO_VAL) * (f(N, P / 2) % MODULO_VAL) % MODULO_VAL) * (N % MODULO_VAL) % MODULO_VAL);
}
}
int main() {
cin >> N >> P;
cout << f(N, P);
return 0;
}