Pagini recente » Cod sursa (job #1858094) | Cod sursa (job #2871448) | Cod sursa (job #1919498) | Cod sursa (job #565098) | Cod sursa (job #2404563)
#include <stdio.h>
//#define LL long long
using namespace std;
int A, M;
int expLog_modM(int base, int pow) {
if (pow == 0) return 1;
int 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("%d %d", &A, &M);
printf("%d\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;
}