Cod sursa(job #348447)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 15 septembrie 2009 19:59:42
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>

using namespace std;

#define fin  "lgput.in"
#define fout "lgput.out"

#define MOD 1999999973

long long N, P;

long long up(long long a, long long b)
{
	long long rem;

	if ( b == 1 ) return a;

	if ( b & 1 )
		return (rem = up(a,b/2)) * rem % MOD * a;
	else
		return (rem = up(a,b/2)) * rem % MOD;
}

int main()
{
	freopen(fin,"r",stdin);
	freopen(fout,"w",stdout);

	cin >> N >> P;

	cout << up(N,P);

	return 0;
}