Cod sursa(job #1925942)

Utilizator MaligMamaliga cu smantana Malig Data 13 martie 2017 21:02:26
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>

using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");

const int mod = 1999999973;

long long pw(long long,long long);

int main() {
    long long B,E;
    in>>B>>E;
    out<<pw(B,E);

    in.close();out.close();
    return 0;
}

long long pw(long long b,long long e) {
    if (e == 0) {
        return 1;
    }
    if (e == 1) {
        return b;
    }
    if (e % 2 == 1) {
        return b * pw(b*b,(e-1)/2) % mod;
    }
    if (e % 2 == 0) {
        return pw(b*b,e/2) % mod;
    }
}