Cod sursa(job #377185)

Utilizator ChallengeMurtaza Alexandru Challenge Data 23 decembrie 2009 18:01:34
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>

using namespace std;

const char InFile[]="lgput.in";
const char OutFile[]="lgput.out";
const int M=1999999973;

int N,P;

int pow(int N,int P){
	if(P==1){return N;}
	int REZ=1,R2;
	R2=pow(N,P/2);
	REZ=(R2*R2)%M;
	if(P%2==1){REZ=(N*REZ)%M;}
	return REZ;
}

int main(){
	ifstream fin(InFile);
	fin>>N>>P;
	fin.close();
	ofstream fout(OutFile);
	fout<<pow(N,P);
	fout.close();
	return 0;
}