Cod sursa(job #2200957)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 2 mai 2018 22:18:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>

#define MOD 1999999973
#define ll long long
using namespace std;

ll up(ll n, ll p) {
    if (p == 0) {
        return 1;
    }
    if (p == 1) {
        return n % MOD;
    }

    if (p%2 == 0) {
        ll rez = up(n, p/2) % MOD;
        return (rez * 1ll * rez) % MOD;
    }

    return ( n * 1ll * up(n, p - 1) ) % MOD;
}

int main() {

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

    long long n, p;
    f>>n>>p;

    g<<up(n,p);
    return 0;
}