Cod sursa(job #1723210)

Utilizator theo.stoicanTheodor Stoican theo.stoican Data 30 iunie 2016 00:51:34
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.44 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

#define NMAX 1999999973

ifstream fin ("lgput.in");
ofstream fout ("lgput.out");

long long n, p;

int pow (long long x, long long p)
{
	//cout<<p<<endl;
	if (p == 1)
	{
		return x%NMAX;
	}
	else if (p%2 == 0)
	{
		return pow (x*x % NMAX, p/2) % NMAX;
	}
	else
	{
		return x*pow(x*x % NMAX, (p-1)/2)%NMAX;
	}
}

int main()
{
	fin>>n>>p;
	fout << pow (n, p);
	return 0;
}