Pagini recente » Cod sursa (job #3209190) | Cod sursa (job #866074) | Cod sursa (job #1196771) | Diferente pentru problema/apm intre reviziile 6 si 5 | Cod sursa (job #706611)
Cod sursa(job #706611)
#include <cstdio>
#define MAX 1999999973
int main()
{
freopen("lgput.in","rt",stdin);
freopen("lgput.out","wt",stdout);
long n,a,y=1,x,k,step;
scanf("%ld %ld",&a,&n);
while(n)
{
x=a;
for(step=1,k=0;step<=n;step<<=1,k++);
k--;
step>>=1;
for(long i=1;i<=k;i++)
x*=x,x%=MAX;
n-=step;
y*=x,y%=MAX;
}
printf("%ld",y);
}