Cod sursa(job #150806)

Utilizator vlad.maneaVlad Manea vlad.manea Data 7 martie 2008 14:05:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>

#define MOD 1999999973L

long long N, P;

long long putere(long P)
{
	if (P == 0)
		return 1;

	if (P == 1)
		return N % MOD;

	long long x = putere(P>>1);

	x = x * x % MOD;

	if (P % 2) x = x * N % MOD;

	return x;
}

int main()
{
	freopen("lgput.in", "r", stdin);

	freopen("lgput.out", "w", stdout);

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

	printf("%lld\n", putere(P));

	return 0;
}