Cod sursa(job #2169641)

Utilizator remus88Neatu Remus Mihai remus88 Data 14 martie 2018 16:23:55
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#define MOD 1999999973

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

int n,p;

int lgput(int a, int k) {

    int m=1;
    int n=a;
    while(k>1) {

        if (k%2==0) {

            n=((n%MOD) * (n%MOD))%MOD;
            k=k/2;
        }
        else {

            m=((m%MOD) * (a%MOD))%MOD;
            --k;
        }
    }

    return ((m%MOD) * (n%MOD))%MOD;
}

int main() {

    f>>n>>p;

    g<<lgput(n,p);

    f.close(); g.close();
    return 0;
}