Pagini recente » Borderou de evaluare (job #3025350) | Borderou de evaluare (job #1830318) | Borderou de evaluare (job #1466420) | Borderou de evaluare (job #1830923) | Cod sursa (job #577705)
Cod sursa(job #577705)
#include <cstdio>
using namespace std;
const int m=1999999973;
int n, p;
int f(int x,int n)
{
if (n==0)
return 1;
if (n<0)
{
n=(-n);
return (1/(f(x,n)))%m;
}
if (n%2)
{
n=(n-1)/2;
int c=f(x,n);
return (x*c*c)%m;
}
else
{
n/=2;
int c=f(x,n);
return (c*c)%m;
}
}
int main()
{
freopen ("lgput.in","r",stdin);
freopen ("lgput.out","w",stdout);
scanf ("%d %d",&n,&p);
printf("%d\n",f(n,p)%m);
return 0;
}