Cod sursa(job #177218)

Utilizator vladcyb1Vlad Berteanu vladcyb1 Data 12 aprilie 2008 14:13:50
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

#define FIN "lgput.in"
#define FOUT "lgput.out"
#define MODULO 1999999973

int power( int N, int P )
{
	int t;
	if ( !P ) return 1;
	if( !(P % 2) )
	{
		t = power( N, P / 2);
		return  ( ( long long )t * t ) % MODULO ;
	}
	else
		return (( long long ) N * power( N, P - 1)) % MODULO;
}


int main()
{
	int N, P;
	FILE * fin = fopen( FIN, "r" );
	FILE * fout = fopen( FOUT, "w" );
	fscanf( fin, "%d%d", &N, &P );
	fprintf( fout, "%d\n", power( N, P ));
	fclose( fin );
	fclose( fout);
	
}