Cod sursa(job #392872)

Utilizator O_NealS. Alex O_Neal Data 8 februarie 2010 15:19:49
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
#include<stdio.h>
using namespace std;

unsigned long putere(unsigned long x, unsigned long n)
{
	if(n==0) return 1; 
	else if(n%2) 
	{ 
		unsigned long rez = putere(x,(n-1)/2);
		return x*rez*rez;
	}
	else 
	{
		unsigned long rez=putere(x,n/2); 
		return rez*rez;
	}
}


int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	unsigned long x,n,p;
	scanf("%ld %ld", &n, &p);
	x=putere(n,p);
	x%=1999999973;
	printf("%ld\n", x);
	return 0;
}