Cod sursa(job #1649071)

Utilizator BogdanisarBurcea Bogdan Madalin Bogdanisar Data 11 martie 2016 12:28:27
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");

#define mod 1999999973

unsigned long long N,P;

unsigned long long exp_log(unsigned long long,unsigned long long);

int main() {
    f>>N>>P;
    g<<exp_log(N,P);
    f.close();g.close();
    return 0;
}

unsigned long long exp_log(unsigned long long baza,unsigned long long exp) {
    unsigned long long rez=1;
    while (exp>=1) {
        if ((exp&1)==1) {
            rez=(rez*baza)%mod;
        }
        exp>>=1;
        baza=(baza*baza)%mod;
    }
    return rez;
}