Cod sursa(job #2258874)

Utilizator stewie368Stefan stewie368 Data 12 octombrie 2018 12:25:30
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,p;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
#define k 1999999973

ll putere(ll n, ll p)
{
	if(p==0) return 1;
	if(p==1) return n%k;
	if(p%2 == 0) return putere(((n%k)*(n%k))%k, p/2);
	else return ((n%k) * putere(((n%k)*(n%k))%k, p/2))%k;
}

int main()
{
	fin>>n>>p;
	fout<<putere(n,p);
}