Cod sursa(job #348451)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 15 septembrie 2009 20:03:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 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 % MOD;
	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;
}