Cod sursa(job #680876)

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

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

#define mod 1999999973

long long A,B;

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

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