Cod sursa(job #146942)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 2 martie 2008 14:01:17
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>
#include <string.h>
#include <math.h>

long long n_max = 10001, m = 2000000000, i, n, p, a;
long long sol;

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