Cod sursa(job #392916)

Utilizator O_NealS. Alex O_Neal Data 8 februarie 2010 16:08:58
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include<stdio.h>
#define nr 1999999973
using namespace std;

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


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