Cod sursa(job #1202171)

Utilizator vasile_pojogaPojoga Vasile vasile_pojoga Data 27 iunie 2014 10:24:24
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>

using namespace std;

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

long long int n,p;

unsigned long long int pow(long long int n,long long int p,int MODULO);

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

unsigned long long int pow(long long int n,long long int p,int MODULO)
{
	unsigned long long int result = 1;
	while(p > 0)
	{
		if(p % 2 == 0)
		{
			n = (n * n) % MODULO;
			p = p / 2;
		}
		else
		{
			result = (result * n) % MODULO;
			p = p - 1;
		}
	}
	return result;
}