Cod sursa(job #1007337)

Utilizator lucky1992Ion Ion lucky1992 Data 8 octombrie 2013 19:45:36
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <cstdio>
#define MOD 1999999973

using namespace std;

int P;
long long N;

long long putere( long long x , int p ){

		if( p == 0 )
			return 1L;
		else if( p == 1 )
			return x*1L;
		else{
			long long temp = putere( x, p/2 );
			
			if( p%2 == 0 )
				return (temp*temp*1L)%MOD;
			else
				return (temp*temp*x*1L)%MOD;
		}
}

int main(){

	freopen("lgput.in", "r", stdin );
	freopen("lgput.out", "w", stdout );
	
	scanf("%lld", &N );
	scanf("%d",&P);
	
	long long rez = putere( N, P ) ;
	
	printf("%lld\n", rez );
	
	return 0;

}