Cod sursa(job #2044968)

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

using namespace std;

const int mod = 1999999973;

int 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 - 1) / 2) & mod);
}
int main()
{
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	int N, P;
	cin >> N >> P;

	cout << putere(N, P);

	return 0;
}