Cod sursa(job #561231)

Utilizator sebii_cSebastian Claici sebii_c Data 19 martie 2011 09:49:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>
#define INFILE "lgput.in"
#define OUTFILE "lgput.out"

unsigned int MOD = 1999999973;

void power(long long x, int y)
{
	int i;
	long long res = 1;
	for (i=0; (1<<i) <= y; ++i) {
		if (((1<<i) & y) > 0)
			res = (res * x) % MOD;
		x = (x * x) % MOD;
	}
	printf("%lld\n", res);
}

int main()
{
	int n, p;
	long long a;
	freopen(INFILE, "r", stdin);
	freopen(OUTFILE, "w", stdout);
	scanf("%d %d", &n, &p);
	a = n;
	power(a, p);
	return 0;
}