Cod sursa(job #1248088)

Utilizator gabrieligabrieli gabrieli Data 24 octombrie 2014 17:02:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>
#include <cstdint>

using namespace std;

uint64_t powm(uint64_t b, uint64_t e, uint64_t m) {
    uint64_t r = 1;
    
    while(e) {
        if (e % 2)
            r = (r * b) % m;
       b = (b * b) % m; 
       e >>= 1;
    }
    
    return r;
}

int main() {
    ifstream fin("lgput.in");
    ofstream fout("lgput.out");
    
    uint64_t e, b;
    
    fin >> e >> b;
    fout << powm(e, b, 1999999973) << endl;
    
    return 0;
}