Cod sursa(job #1154213)

Utilizator roxana.istratePoenaru Roxana roxana.istrate Data 26 martie 2014 00:41:57
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>

#define MAX 1999999973

using namespace std;

long long compose (long long n,long long p){
	long long c;
	if(p == 1) return n;
	if(p == 0) return 1;
	c = compose(n,p / 2);
	if(p % 2 == 0){
		return ((c % MAX) * (c % MAX)) % MAX;
	}
	return ((c % MAX) * (c % MAX) * (n % MAX)) % MAX;
}

int main(){
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");

	long long n, p;
	fin >> n >> p;

	fout << compose(n, p);
	return 0;
}