Cod sursa(job #966724)

Utilizator BlackElfSpulber Iosif BlackElf Data 26 iunie 2013 15:20:15
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 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;
	}
	else
	{
		return (n * powMod (n, p-1)) % MOD;
	}
}

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

	return 0;
}