Pagini recente » Cod sursa (job #1029130) | Diferente pentru implica-te/arhiva-educationala intre reviziile 58 si 59 | Cod sursa (job #1878673) | Cod sursa (job #2301764) | Cod sursa (job #2028033)
#include <fstream>
#define in "lgput.in"
#define out "lgput.out"
#define mod 1999999973
using namespace std;
ifstream fin(in);
ofstream fout(out);
typedef unsigned long long ull;
inline ull ridlog(ull n,ull p)
{
if(p < 2) return n;
ull R = ridlog(n,p/2);
if(R == 0) R = 1;
if(p%2 == 0)
{
return (R*R)%mod;
}
return (((R*R)%mod)*n)%mod;
}
int main()
{
ull n,p;
fin>>n>>p;
fout<<ridlog(n,p)%mod;
fin.close(); fout.close();
return 0;
}