Cod sursa(job #170499)

Utilizator reSpawnPopescu Ioan reSpawn Data 2 aprilie 2008 20:35:42
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
// http://infoarena.ro/problema/lgput

#include <stdio.h>
#include <math.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", pow( (double)N, P ) );

	return 0;
}