Cod sursa(job #680874)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 16 februarie 2012 01:54:53
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>

#define file_in "lgput.in"
#define file_out "lgput.out"

#define mod 1999999973

int A,B;

long long put(int A, int B){
	
	if (B==0)
		return 1;
	if (B%2==0){
		int X=put(A,B/2);
		return (X%mod)*(X%mod);
	}
	else{
		int X=put(A,B/2);
		return ((X%mod)*(X%mod)*A)%mod;
	}
}

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &A, &B);
	printf("%lld\n", put(A,B));
	
	return 0;
}