Cod sursa(job #2009213)
| Utilizator | Data | 8 august 2017 22:41:44 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include <fstream>
using namespace std;
ifstream cin ("lgput.in");
ofstream cout ("lgput.out");
const int MOD = 1999999973;
long long raise(long long n, long long p) {
long long sol = 1;
while (p) {
if (p & 1) {
sol *= n;
sol %= MOD;
}
n *= n;
n %= MOD;
p >>= 1;
}
return sol;
}
int main() {
long long n, p, sol = 1;
cin >> n >> p;
cout << raise(n, p) << '\n';
}