Cod sursa(job #2258872)

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

ull putere(unsigned int n, unsigned int 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);
}