Cod sursa(job #575887)

Utilizator stay_awake77Cangea Catalina stay_awake77 Data 8 aprilie 2011 20:42:22
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 1999999973

long long N, P;

inline long long Pow( long long Nr, long long Put )
{
	if( Put )
	{
		if( !(Put%2) ) return Pow( (Nr*Nr)%MOD, Put/2 )%MOD;
		else return Nr * Pow( (Nr*Nr)%MOD, Put/2 )%MOD;
	}
	else return 1;
}

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

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

	printf("%lld\n", Pow( N, P ));

	return 0;
}