Cod sursa(job #819934)

Utilizator radupetriselPetrisel Radu radupetrisel Data 19 noiembrie 2012 20:54:40
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <cstdio>

long long lgput (long long n, long long p){
	
	long long m=1999999973;
	long long res=1;
	
	if (p==0) return 1;
	if (p==1) return n;
	
	if (p%2==1) {p--; res=(res*n)%m;}
	return lgput ((n*n)%m, p/2);
}

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

	long long n, p;
	scanf ("%lld %lld", &n, &p);
	
	printf ("%lld", lgput(n, p));
	
	return 0;
}