Pagini recente » Cod sursa (job #1913656) | Cod sursa (job #1147927) | Cod sursa (job #2810474) | Cod sursa (job #1201480) | Cod sursa (job #2404569)
#include <stdio.h>
using namespace std;
long long A, M;
long long expLog_modM(int base, int pow) {
if (pow == 0) return 1;
long long mid = expLog_modM(base, pow >> 1);
if (pow&1) return (base * mid * mid) % M;
return (mid * mid) % M;
}
int main()
{
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
scanf("%lld %lld", &A, &M);
printf("%lld\n", expLog_modM(A, M-2));
/*LL put = M-2;
LL nr = A;
LL crt = 1;
for(LL p = 1;p <= put;p <<= 1)
{
if (p & put) crt = (crt * nr) % M;
nr = (nr * nr) % M;
}
printf("%lld\n",crt);*/
return 0;
}