Cod sursa(job #377191)

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

using namespace std;

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

unsigned long int N,P;

unsigned long int pow(unsigned long int N,unsigned long int P){
	if(P==1){return N;}
	unsigned long 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;
}