Cod sursa(job #663596)

Utilizator XbyteAvram Florin Xbyte Data 18 ianuarie 2012 19:02:50
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
#include<fstream>

using namespace std;

const long mod = 1999999973;
const char InFile[] = "f.in";
const char OutFile[] = "g.out";

long long n,p;

long long power(long long n,long long p)
{
	long long x;
	if(  p == 0 )
		return 1;
		else
		if( p % 2 )
			return (n*power(n,p-1))%mod;
			else
			if( p % 2 == 0 )
				{
					x = power(n,p/2);
					return (x*x)%mod;
				}
}

int main()
{
	freopen( InFile , "r" , stdin );
	freopen( OutFile , "w" , stdout );
	scanf("%lld%lld" , &n , &p );
	printf("%lld\n" , power(n,p)%mod );
	return 0;
}