Cod sursa(job #3135156)
Utilizator | Mircea Lupu mire123 | Data | 2 iunie 2023 01:38:34 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <bits/stdc++.h>
using namespace std;
int calc(int x, int n)
{
if (n < 0)
return calc(1 / x, -n);
if (n == 0)
return 1;
if (n % 2 == 0)
return calc(x * x, n / 2);
else
return x * calc(x * x, (n - 1) / 2);
}
int main()
{
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int N, P, rz;
int nr = 1999999973;
fin >> N >> P;
rz = calc(N, P) % nr;
fout << rz;
return 0;
}