Cod sursa(job #432040)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 1 aprilie 2010 19:23:10
Problema Ridicare la putere in timp logaritmic Scor 0
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");

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

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