Cod sursa(job #1695046)

Utilizator Victor10Oltean Victor Victor10 Data 26 aprilie 2016 15:01:36
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MOD 1999999973

long long lgput (long long nb, long long pow)
{
    long long pow_over_2;

    if (pow == 0) return 1;
    if (pow % 2 == 0)
    {
        pow_over_2 = (lgput (nb, pow / 2)) % MOD;
        return (pow_over_2 * pow_over_2) % MOD;
    }
    else
    {
        return (lgput (nb, pow - 1) * nb) % MOD;
    }
}

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

    long long nb, pow;

    f >> nb >> pow;

    g << lgput (nb, pow);

    return 0;
}