Pagini recente » Cod sursa (job #1583380) | Cod sursa (job #1242050) | Cod sursa (job #1560652) | Cod sursa (job #605249) | Cod sursa (job #1124930)
#include <fstream>
#include <stack>
using namespace std;
ifstream is ("inversmodular.in");
ofstream os ("inversmodular.out");
long long a, n, x;
long long POW(long long A, long long B, long long MOD);
int main()
{
is >> a >> n;
x = POW(a, n-2, n);
os << x;
is.close();
os.close();
return 0;
}
long long POW(long long A, long long B, long long MOD)
{
stack <int> S;
long long aux = B;
for (; aux; aux /= 2) S.push(aux % 2);
for (aux = 1 ; !S.empty(); S.pop())
if (S.top() == 0) aux = ( 1LL * aux * aux) % MOD;
else aux = ( 1LL * aux * aux * A) % MOD;
return aux % MOD;
};