Cod sursa(job #2268454)
Utilizator | Arnold Beiland BeilandArnold | Data | 24 octombrie 2018 20:37:10 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
const long long MODULO = 1999999973;
long long power(long long n, long long p)
{
if (p == 0) {
return 1;
}
else if (p == 1) {
return n % MODULO;
}
else {
long long temp = power(n, p / 2);
temp = temp * temp % MODULO;
if (p % 2 != 0)
temp = temp * n % MODULO;
return temp;
}
}
int main()
{
long long n, p;
std::ifstream input("lgput.in");
input >> n >> p;
std::ofstream output("lgput.out");
output << power(n, p) << std::endl;
return 0;
}