Cod sursa(job #3221341)
Utilizator | Munteanu Mihnea Gabriel InformaticianInDevenire1 | Data | 6 aprilie 2024 20:02:17 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
long long MOD = 1999999973;
long long Exp(long long n,long long p){
long long ans = 1;
while (p>0){
if (p%2==0){
n = (n*n)%MOD;
p = p/2;
}else{
ans = (ans*n)%MOD;
n = (n*n)%MOD;
p = (p-1)/2;
}
}
return ans;
}
int main()
{
long long n,p;
fin >> n >> p;
fout << Exp(n,p);
return 0;
}