Cod sursa(job #2923545)
Utilizator | Bicu Codrut Eduard Edyci123 | Data | 15 septembrie 2022 17:42:19 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <bits/stdc++.h>
#define INFILE "lgput.in"
#define OUTFILE "lgput.out"
#define MOD 1999999973
using namespace std;
ifstream f(INFILE);
ofstream g(OUTFILE);
int nr1, nr2;
int lgput(int nr1, int nr2) {
if (nr2 == 0)
return 1;
if (nr2 % 2 == 0) {
return lgput(1LL * nr1 * nr1 % MOD, nr2 / 2);
} else {
return 1LL * nr1 * lgput(nr1, nr2 / 2) % MOD;
}
}
int main() {
f >> nr1 >> nr2;
g << lgput(nr1, nr2);
return 0;
}