Cod sursa(job #2084105)

Utilizator Andrei17Andrei Pascu Andrei17 Data 8 decembrie 2017 17:38:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define MOD 1999999973

using namespace std;

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

int nr;

int putere(int x, int n) {
    if (n == 0) {
        return 1;
    }
    if (n == 1) {
        return x;
    }
    int p = x * x;
    if (n % 2 == 0) {
        return putere(p, n / 2);
    }
    return putere(p * nr, n / 2);
}

int main()
{
    int n;
    in >> nr >> n;
    out << putere(nr, n) % MOD;
    return 0;
}