Cod sursa(job #681883)

Utilizator aloneForever Alone alone Data 17 februarie 2012 23:19:11
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <cstdio>

#define MOD 1999999973

long long a, b, p, sol, i;

int main () {
	
	freopen ("lgput.in", "r", stdin);
	freopen ("lgput.out", "w", stdout);
	
	scanf ("%d %d", &a, &b);
	
	sol = 1; p = 1;
	for (i = 0; (1LL << i) <= b; i++) {
		if (i > 0) p = (p * p) % MOD;
		else p = a % MOD;
		
		if (b & (1LL << i))
			sol = (sol * p) % MOD;
	}
	
	printf ("%lld", sol);
	
	return 0;
}