Cod sursa(job #2170060)

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

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

long long n,p;

long long lgput(long long a, long long k) {

    long long m=1;
    long long 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;
}