Cod sursa(job #165453)

Utilizator reSpawnPopescu Ioan reSpawn Data 25 martie 2008 23:19:07
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
// http://infoarena.ro/problema/lgput

#include <stdio.h>

long mypow( int n, int p )
{
	if( p == 1 )
		return n;
	if( p == 0 )
		return 1;
	long long nr;
	nr = mypow( n, p/2 );
	nr = nr * nr %1999999973;
	if( p % 2 == 1 )
		nr = nr * n %1999999973;
	return nr;
}

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

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

	printf("%ld", mypow( N, P ) );

	return 0;
}