Cod sursa(job #2084145)

Utilizator Andrei17Andrei Pascu Andrei17 Data 8 decembrie 2017 17:58:40
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 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 % MOD) * (x% MOD)) % MOD, p / 2);
    }
    return n * putere(((x % MOD) * (x% MOD)) % MOD, p / 2);
}

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