Cod sursa(job #146445)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 1 martie 2008 18:40:18
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <cstdio>

#define MOD 1999999973

long lgput(long a, long b) {
	if ( b==0 ) return 1;
	if ( b==1 ) return a;
	if ( (b&1)==0 )
		return ((long long)lgput(a, b/2)*lgput(a, b/2)) % MOD;
	return (((long long)lgput(a, (b-1)/2)*lgput(a, (b-1)/2)) % MOD * a) % MOD;
}


int main() {
	long a,b;
	fscanf(fopen("lgput.in", "r"), "%ld %ld", &a, &b);
	fprintf(fopen("lgput.out", "w"), "%ld\n", lgput(a,b));
	return 0;
}