Cod sursa(job #521420)

Utilizator Catah15Catalin Haidau Catah15 Data 12 ianuarie 2011 14:41:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
#define MOD 1999999973
using namespace std;

long long power2(long long a, long long n)
{
	if(n == 0) return 1;
	
	long long halfpower = power2(a, n/2) % MOD; 
	
	if(n % 2 == 0)
	return (halfpower * halfpower) % MOD;
	else return (((halfpower * halfpower) % MOD) * a) % MOD;
}


int main()
{
	long long a, n;

	
	ifstream f("lgput.in");
	ofstream g("lgput.out");
	
	f >> a;
	f >> n;
	
	g << power2(a,n) << '\n';

	f.close();
	g.close();
	
	return 0;
}