Cod sursa(job #2264006)

Utilizator alexnigaNiga Alexandru alexniga Data 19 octombrie 2018 18:49:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include    <iostream>
#include    <fstream>

using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");

const int MOD = 1999999973;
long long s;
long long RidicareLogaritmica(long long a, long long x)
{   long long  y;
    if (x == 0)
        return 1;
    if (x == 1)
        return a % MOD;
    if (x % 2 == 0)
    {
        y = RidicareLogaritmica(a, x / 2);
        s = (y * y) % MOD;
    }
    else
    {
        s = (RidicareLogaritmica(a, x - 1) * x) % MOD;
    }
    return s;
}

void Read()
{
    int N, P;
    f >> N >> P;
    g << RidicareLogaritmica(N, P);

}

int main()
{
    Read();
    return 0;
}