Cod sursa(job #1376699)

Utilizator dianaa21Diana Pislaru dianaa21 Data 5 martie 2015 18:24:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream is ("lgput.in");
ofstream os ("lgput.out");

long long N;
int X;
long long Exp(long long, int);

int main()
{
    is >> N >> X;
    os << Exp(N, X);
    return 0;
}
long long Exp(long long n, int exp)
{
    if(exp == 0) return 1;
    if(exp == 1) return n;
    if(!(exp%2)) return ( (Exp(n, exp/2)%MOD * Exp(n, exp/2)%MOD )%MOD );
    return ( (n%MOD * Exp(n, exp-1)%MOD )%MOD );
}