Pagini recente » Cod sursa (job #1368969) | Cod sursa (job #3003612) | Cod sursa (job #428951) | Cod sursa (job #2888303) | Cod sursa (job #841847)
Cod sursa(job #841847)
#include <stdio.h>
typedef unsigned long long int64;
const int64 I = 1999999973;
int N;
int64 rest;
int SqrModI(int x)
{
int64 tmp = (int64)x * (int64)x;
tmp = tmp % I;
return (int)tmp;
}
int GetRest(int P)
{
if( P == 1 )
return N%I;
else if( P%2 == 1 ){
int64 rez = N%I;
rez = rez * SqrModI(GetRest(P/2));
rez = rez % I;
return (int)rez;
}
else
return SqrModI(GetRest(P/2));
}
int main(int argc, char* argv[])
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
int P;
scanf("%d %d",&N,&P);
printf("%d", GetRest(P));
return 0;
}