Cod sursa(job #966742)

Utilizator BlackElfSpulber Iosif BlackElf Data 26 iunie 2013 15:31:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

long long MOD = 1999999973;

long long powMod (long long n, long long p)
{
	if (p == 1)
		return n % MOD;
	
	if (p == 0)
		return 1;
		
	if (p % 2 == 0)
	{
		long long aux = powMod (n, p/2) % MOD;
		return (aux * aux) % MOD;
	}
	else
	{
		return (n * (powMod (n, p-1) % MOD)) % MOD;
	}
}

int main ()
{
	long long n, p;
	ifstream in ("lgput.in");
	in >> n >> p;
	
	ofstream out ("lgput.out");
	out << powMod (n, p) << endl;

	return 0;
}