Cod sursa(job #2044993)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 21 octombrie 2017 17:45:01
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <bits/stdc++.h>

using namespace std;

const long long mod = 1999999973;

long long putere(int N, int P)
{
	if(P == 0)
		return 1;
	if(P == 1)
		return N;
	if(P % 2 == 0)
		return putere(N * N, P / 2) % mod;
	else
		return (N * putere(N * N, P / 2)) % mod;
}
int main()
{
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	long long N, P;
	cin >> N >> P;

	cout << putere(N, P);

	return 0;
}