Cod sursa(job #255917)

Utilizator alex.cepoiAlexandru Cepoi alex.cepoi Data 10 februarie 2009 21:06:23
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <iostream>
using namespace std;
const long long M=1999999973;

long long N, P;

long long factor (long long N, long long P)
{
	if (!P) return 1;
	else
	{
		long long temp = factor (N,P/2);
		if (P%2) return (N*temp*temp) % M;
		else return (temp*temp) % M;
	}
}

int main ()
{
	freopen ("lgput.in","r",stdin);
	freopen ("lgput.out","w",stdout);

	cin>>N>>P;
	cout << factor (N,P)<<'\n';
	return 0;
}