Cod sursa(job #432067)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 1 aprilie 2010 19:54:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<iostream>
#include<fstream>
#define modulo 1999999973

using namespace std;

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

long long lgput(long long int N, long long int P)
{	
	if(P==0)
		return 1;
	else
		if(P%2==1)
			return (N*lgput(N,(P-1)/2)*lgput(N,(P-1)/2))%modulo;
		else
			return (lgput(N,P/2)*lgput(N,P/2))%modulo;
			
}
	
long long int N,P,result;

int main()
{
	fin>>N;
	fin>>P;
	result=lgput(N,P);
	fout<<result;
	return 0;
}