Cod sursa(job #2206610)

Utilizator llama27Asd asd llama27 Data 23 mai 2018 08:26:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#define mod 1999999973
#define ll long long 
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
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()
{
	int32_t n, p;
	in >> n >> p;
	out << pwr(n, p);
}