Cod sursa(job #2344473)

Utilizator llama27Asd asd llama27 Data 15 februarie 2019 09:50:11
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#define ll long long
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");

const int mod = 1999999973;

ll pwr(ll x, ll p)
{
    if (p == 0)
		return 1;
	else
		if (p == 1)
			return x % mod;
		else
			if (p % 2 == 1) {
				ll aux = pwr(x, p / 2) % mod;
				return (x*((aux*aux) % mod)) % mod;
			}
			else {
				ll aux = pwr(x, p / 2) % mod;
				return (aux*aux) % mod;
			}
}


int main()
{
   int n,p;
   in>>n>>p;
   out<<pwr(n,p);
}