Cod sursa(job #422053)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 22 martie 2010 08:53:31
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

#define MODULO 1999999973LL
using namespace std;

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



long long n,p;

long long po(long long n, long long p)
{
	if(p==0)
		return 1;
	if(p%2)
	{
		long long k;
		k = po(n,(p-1)/2);
		k = (k*k)%MODULO;
		return (n*k)%MODULO;
	}
		//return (n*po(n,(p-1)/2)*po(n,()))%MODULO;
	else
	{
		long long k;
		k=po(n,p/2);
		return (k*k)%MODULO;
	}
}

int main()
{
	in>>n>>p;
	out<<po(n,p)%MODULO;
	return 0;
}