Cod sursa(job #1028715)

Utilizator danny794Dan Danaila danny794 Data 14 noiembrie 2013 16:44:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

#define MAX 1999999973

using namespace std;

inline void read(){
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
}

long long power(long long N, int n){
	if (n == 0)
		return 1;
	if (n == 1)
		return N % MAX;
	else {
		long long pn2 = power(N, n/2);
		pn2 = pn2 * pn2 % MAX;
		if (n % 2 == 0)
			return pn2 % MAX;
		else
			return (pn2 * N) % MAX;
	}
}

int main() {
	long long N;
	int p;
	read();
	scanf("%lld %d", &N, &p);
	N = power(N, p);
	printf("%lld", N);
	return 0;
}