Cod sursa(job #723851)

Utilizator gener.omerGener Omer gener.omer Data 25 martie 2012 23:14:04
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <iostream>

using namespace std;

#define MAX 1999999973

long long  N, P, result = 1;

long long getPow(int power){
	long long p = N;
	for(int i = 0; i < power; ++i)
		p = (p * p) % MAX;
	return p;
}

int main(){
	freopen("lgput.in",  "rt", stdin);
	freopen("lgput.out", "wt", stdout);
	cin >> N >> P;
	for(int i = 0; i < 32; ++i)
		if(P & (1 << i))
			result = (result * (getPow(i))) % MAX;	
	
	cout << result;
	
	return 0;
}