Pagini recente » Cod sursa (job #948546) | Cod sursa (job #816612) | Diferente pentru info-oltenia-2018/individual intre reviziile 16 si 3 | Cod sursa (job #124212) | Cod sursa (job #1282580)
#include <iostream>
#include <fstream>
#define R 1999999973
using namespace std;
fstream in("lgput.in",ios::in);
fstream out("lgput.out",ios::out);
unsigned long putere(unsigned long x,unsigned long p)
{
if(p<0)
return putere(1/x,-p);
else if(p==0)
return 1;
else if(p==1)
return x;
else if(p%2==0)
return putere((long long)x*x%R,p/2);
else if(p%2!=0)
return (long long)x*putere((long long)x*x%R,(p-1)/2)%R;
}
int main()
{
unsigned long n,p;
in>>n>>p;
in.close();
out<<putere(n,p);
out.close();
return 0;
}