Cod sursa(job #2701036)

Utilizator bogdanc2002Bogdan Colta bogdanc2002 Data 29 ianuarie 2021 17:05:24
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.41 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("lgput.in");ofstream fout("lgput.out");
long long int n,p;
long long int exp(long long int n,long long int p){
    if(p<0)return exp(1/n,-p);
    else if(p==0)return 1;
    else if(p==1)return n;
    else if(p%2==0)return exp(n*n,p/2)%1999999973;
    else return n*exp(n*n,(p-1)/2)%1999999973;
}
int main() {
fin>>n>>p;
fout<<exp(n,p)%1999999973;
    return 0;
}