Cod sursa(job #2242760)
Utilizator | Data | 19 septembrie 2018 14:52:08 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
using namespace std;
const int M = 1999999973;
int main()
{
ifstream in("lgput.in");
ofstream out("lgput.out");
int a, n, p;
in >> a >> n;
in.close();
p = 1;
do {
if ((n % 2) != 0) {
p = (long long)p * a % M;
}
a = (long long)a * a % M;
n /= 2;
} while (n != 0);
out << p;
out.close();
return 0;
}