Cod sursa(job #2725726)
Utilizator | Radu Mihai Gheorghe radugheo | Data | 19 martie 2021 16:18:29 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
int lgput (long n, long long p){
long long prod = 1;
if (p == 0){
return 1;
}
while (p != 0){
if (p%2 == 1){
prod = prod*n;
prod = prod%MOD;
}
n = n*n;
n = n%MOD;
p = p/2;
}
return prod;
}
long long n, p;
int main(){
fin >> n >> p;
fout << lgput(n, p);
return 0;
}