Cod sursa(job #2379226)

Utilizator ShumaherAdasga Shumaher Data 13 martie 2019 09:47:41
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");

long int N,P,o=0;

long int convertToBinary(long int n) {
    if (n / 2 != 0) {
        convertToBinary(n / 2);
    }
    o=o*10+n%2;
    return o;
}

long int exponentiere(long int N, long int P ) {
long int y=1;
    while(P>1) {
        if(P%2==0) {
            N=N*N%MOD;
            P=P/2;
        } else
        N=N*N%MOD;
        y=N*y%MOD;
        P=(P-1)>>1;
        }
        return (N*y)%MOD;
}

int main() {
    cin>>N>>P;
    cout<<exponentiere(N,P);


    return 0;
}