Pagini recente » Cod sursa (job #1377250) | Cod sursa (job #1229072) | Cod sursa (job #1949948) | Cod sursa (job #2183039) | Cod sursa (job #2389155)
#include <cstdio>
using namespace std;
int euler(int a)
{
int phi = a , d , e;
d = 2;
while(1LL * d * d <= a && a > 1)
{
e = 0;
while(a % d == 0)
{
a = a / d;
e ++;
}
if(e > 0)
phi = phi / d * (d - 1);
d ++;
}
if(a > 1)
phi = phi / a * (a - 1);
return phi;
}
int main()
{
freopen("inversmodular.in" , "r" , stdin);
freopen("inversmodular.out" , "w" , stdout);
int a , n;
scanf("%d%d" , &a , &n);
printf("%d\n" , euler(a) - 1);
return 0;
}