Cod sursa(job #2084149)

Utilizator Andrei17Andrei Pascu Andrei17 Data 8 decembrie 2017 18:10:50
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 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 (p % 2 == 0) {
        return putere(x, p / 2) % MOD * putere(x, p / 2) % MOD;
    }
    return putere(x, p / 2) % MOD * putere(x, p / 2) % MOD * x % MOD;
}

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