Cod sursa(job #2556491)
Utilizator | Cazacu Mihnea mihneacaz | Data | 24 februarie 2020 22:31:42 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <fstream>
using namespace std;
const long long MOD = 1999999973;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
int power(int a, int x)
{
long long p = a, ans = 1;
for(int i = 0; (1 << i) <= x; ++i) {
if(x & (1 << i)) {
ans = (ans * p) % MOD;
}
p = (p * p) % MOD;
}
return ans;
}
int main() {
int n, p;
cin >> n >> p;
cout << power(n, p) << "\n";
return 0;
}