Cod sursa(job #434680)

Utilizator nashnash mit nash Data 6 aprilie 2010 13:40:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <stdio.h>

#define MOD 1999999973
#define LL long long
LL n,p;

LL exp(LL n,LL p) {
	if(p == 1) return n % MOD;
	
	LL val = exp(n,p/2);
	val = (val * val) % MOD;
	
	if(p % 2 == 0) return val ;
		
	return (val * exp(n,1)) % MOD;
}

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