Cod sursa(job #146360)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 1 martie 2008 16:37:47
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <stdio.h>

#define MOD 1999999973

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

	long long N, P;
	scanf("%lld %lld", &N, &P);

	if (P == 0)
	{
		printf("1\n");
		return 0;
	}

	long long rez = 1;
	for (int k = 0; 1LL << k <= P; k++)
	{
		if (P & (1LL << k))
			rez *= N, rez %= MOD;

		N *= N, N %= MOD;
	}
	printf("%lld\n", rez);

	return 0;
}