Cod sursa(job #2718146)
Utilizator | Data | 8 martie 2021 15:18:35 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include <fstream>
const int mod = 1999999973;
int prod(int a, int b) { return (1ll*a*b)%mod; }
int putlog(int n, int k) {
if(k==0) return 1;
int x = putlog(n, k/2);
if(k%2==0) return prod(x, x);
return prod(n, prod(x, x));
}
int main() {
std::ifstream fin("lgput.in");
std::ofstream fout("lgput.out");
int n, k;
fin>>n>>k;
fout<<putlog(n, k);
}