Cod sursa(job #3221348)

Utilizator stefazstefan dardala stefaz Data 6 aprilie 2024 20:17:02
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int m=199999997;
long long exp(long long N,long long P){
    long long ans=1;
    while(P>0){
        if(P%2==0){
            N=(N*N)%m;
            P=P/2;
        }else{
        ans=(ans*N)%m;
        N=(N*N)%m;
        P=(P-1)/2;
        }
    }
    return ans;
}
int main() {
    long long n,p,ans=1;
    fin>>n>>p;
    ans=exp(n,p);
    fout<<ans%m;
    return 0;
}