Pagini recente » Istoria paginii runda/shumenichb2013/clasament | Cod sursa (job #2253069) | Cod sursa (job #1936057) | Cod sursa (job #2386281) | Cod sursa (job #432071)
Cod sursa(job #432071)
#include<iostream>
#include<fstream>
#define modulo 1999999973
#define SQ(x) (long long) (x) * (x)
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int lgput(int N, int P)
{
if (P==1)
return ( long long ) N % modulo;
else
if (P==2)
return (SQ(N)) % modulo;
else
{
if (P%2==0)
{
long long x = ((long long)lgput(N,P/2));
return (SQ(x)) % modulo;
}
else
return ((long long) lgput(N,P-1) * N) % modulo;
}
}
long long N,P,result;
int main()
{
fin>>N;
fin>>P;
result = lgput(N,P);
fout<<result;
return 0;
}