Cod sursa(job #2084133)

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

using namespace std;

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

unsigned long long n;

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

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