Cod sursa(job #188606)

Utilizator slayer4uVictor Popescu slayer4u Data 9 mai 2008 11:16:19
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>

long long a, b, c, i, sol = 1;

int main()
{
	freopen ("lgput.in", "rt", stdin);
	freopen ("lgput.out", "wt", stdout);

	scanf("%lld %lld", &a, &b);
	c = 1999999973;
	a %= c;

	for (i = 0; (1<<i) <= b; ++ i)
	{
		//if (i > 31) break;
		if ( ((1<<i) & b) )
			sol = ((sol % c) * (a % c)) % c;
	
			a = ((a % c) * (a % c)) % c;
	}

	printf("%lld\n", sol);

	return 0;
}