Mai intai trebuie sa te autentifici.
Cod sursa(job #2983856)
Utilizator | Data | 23 februarie 2023 10:20:13 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int MAGIC_NO = 1999999973;
long long baze, exponent;
long long ridicare(long long baze, long long exponent) {
long long rest = 1;
while (exponent) {
if (exponent % 2 == 1) {
rest = rest * baze % MAGIC_NO;
--exponent;
}
baze = baze * baze % MAGIC_NO;
exponent /= 2;
}
return rest;
}
int main() {
fin >> baze >> exponent;
fout << ridicare(baze, exponent);
return 0;
}