Pagini recente » Cod sursa (job #1446888) | Cod sursa (job #489981) | Cod sursa (job #2634936) | Cod sursa (job #2622363) | Cod sursa (job #2639797)
#include <iostream>
#include <fstream>
using namespace std;
int phi(int x) {
int answer = x;
for (int i = 2; i * i <= x; ++i) {
if (x % i == 0) {
answer = answer / i * (i - 1);
while (x % i == 0) {
x = x / i;
}
}
}
if (x > 1) {
answer = answer / x * (x - 1);
}
return answer;
}
int power(int a, int b, int mod) {
if (b == 0) {
return 1;
}
if (b % 2 == 0) {
return power(1LL * (a * a) % mod, b / 2, mod);
} else {
return ((1LL * a * power(a, b - 1, mod)) % mod) ;
}
}
int main()
{
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int n, mod;
fin >> n >> mod;
fout << power(n, phi(mod) - 1, mod);
return 0;
}