Pagini recente » Cod sursa (job #2745751) | Cod sursa (job #2710020) | Cod sursa (job #959005) | Cod sursa (job #2837051) | Cod sursa (job #2456286)
#include <fstream>
#define MOD 1999999973
#define Nat long long
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
Nat P1(Nat a, Nat n)
{
Nat p = 1;
while(n > 0)
{
if(n % 2 == 1)
p = p * a % MOD;
n /= 2;
a = a * a % MOD;
}
return p;
}
Nat P2(Nat a, Nat n)
{
Nat p = 1, i = 0;
Nat t[32];
t[0] = a;
for(i = 1;i <= 30;i++)
t[i] = t[i - 1] * t[i - 1] % MOD;
i = 0;
while(n > 0)
{
if(n % 2 == 1)
p = p * t[i] % MOD;
n /= 2;
i++;
}
return p;
}
int main()
{
Nat a, n;
fin >> a >> n;
fout << P2(a, n);
return 0;
}