Cod sursa(job #643370)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 3 decembrie 2011 16:00:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
#define val 1999999973
int n , p;
long long put(int k){
	if(k==1)
		return n;
	else{
		if(k%2==1){
			long long a=put(k/2);			
			return a*a%val*n%val;
		}
		else{
			long long a=put(k/2);
			return a*a%val;
		}
	}
}
int main(){
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%d%d",&n,&p);
	if(p==0)
		printf("%d",1);
	else
		printf("%lld",put(p));
	return 0;
}