Pagini recente » Cod sursa (job #3149099) | Cod sursa (job #1955075) | Cod sursa (job #2991105) | Cod sursa (job #1429243) | Cod sursa (job #2605635)
#include <fstream>
using namespace std;
int main() {
ifstream cin ("inversmodular.in");
ofstream cout ("inversmodular.out");
int a, n, i, cn, nr, put;
cin >> a >> n;
cn = nr = n;
i = 2;
while (i * i <= cn) {
if (cn % i == 0) {
nr = nr / i * (i - 1);
while (cn % i == 0)
cn /= i;
}
i++;
}
if (cn > 1)
nr = nr / cn * (cn - 1);
nr--;
put = 1;
while (nr) {
if (nr % 2)
put = (put * a) % n;
nr /= 2;
a = (a * a) % n;
}
cout << put;
return 0;
}