Pagini recente » Cod sursa (job #1356497) | Cod sursa (job #1321228) | Cod sursa (job #1940203) | Cod sursa (job #2398989) | Cod sursa (job #3191706)
#include <fstream>
using namespace std;
const int MOD = 1999999973;
// Recursiv:
int logPow(int n, int a) {
if(a == 0) {
return 1;
}
int x = logPow(n, a / 2);
int x_a = (1LL * x * x) % MOD;
if(a % 2 == 0) {
return x_a;
}
return (1LL * x_a * n) % MOD;
}
// Iterativ:
int logPow2(int n, int a) {
int sol = 1;
while(a > 0) {
if(a % 2 == 1) {
sol = (1LL * sol * n) % MOD;
a--;
}
sol = (1LL * sol * sol) % MOD;
a /= 2;
}
return sol;
}
int main() {
int n, a;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
fin >> n >> a;
fout << logPow(n, a);
return 0;
}