Cod sursa(job #907230)

Utilizator deresurobertoFMI - Deresu Roberto deresuroberto Data 7 martie 2013 19:00:21
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<cstdio>
using namespace std;
long int n,p,r;
long long k;

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

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