Cod sursa(job #703487)

Utilizator Catah15Catalin Haidau Catah15 Data 2 martie 2012 12:36:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

#define int64 long long
#define MOD 1999999973


inline int64 lgpow (int64 N, int64 P)
{
	if (P == 1) return N;
	
	int64 halfpower = lgpow (N, P / 2);
	
	if (P % 2) return (((halfpower * halfpower) % MOD) * N) % MOD;
	return (halfpower * halfpower) % MOD;
}


int main()
{
	freopen ("lgput.in", "r", stdin);
	freopen ("lgput.out", "w", stdout);
	
	int64 N, P;
	
	scanf ("%lld %lld", &N, &P);
	
	printf ("%lld", lgpow (N, P));
	
	return 0;
}