Pagini recente » Diferente pentru sandbox intre reviziile 271 si 270 | Cod sursa (job #2670536) | Diferente pentru utilizator/mr.dynamite intre reviziile 116 si 63 | Cod sursa (job #1277105) | Cod sursa (job #1118803)
#include <cstdio>
using namespace std;
int main()
{freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
unsigned int i, n, p,m;
long long a, sol = 1;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d %d", &n, &p);
a = n;
for (i = 0; (1<<i) <= p; ++ i)
{
if ( ((1<<i) & p) > 0)
sol= (sol * a) % m;
a=(a * a) % m;
}
printf("%lld\n", sol);
}