Cod sursa(job #1907733)

Utilizator gabriel.bjgGabriel b. gabriel.bjg Data 6 martie 2017 20:40:40
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
//#include "stdafx.h"
#include <fstream>

using namespace std;

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

unsigned long long putere(unsigned long long n, unsigned long long p)
{
	if (p == 0)
		return 1;
	if (p == 1)
		return n;
	if (p % 2 == 0)
	{
		unsigned long long rez = putere(n, p / 2);
		return (rez * rez) % 1999999973;
	}
	return (n * putere(n, p - 1)) % 1999999973;
}

int main()
{
	unsigned long long n, p;
	fin >> n >> p;
	fout << putere(n % 1999999973, p) % 1999999973;
    return 0;
}