#include #include #include using namespace std; //calculates phi(p^k), for p prime and k > 0 int phi_prime(int p, int k) { if (p == 1) { return 1; } int answer = 1; for (int i = 0; i < k - 1; i++) { answer *= p; } answer *= (p - 1); return answer; } int N; bool read() { if (scanf("%d", &N) == EOF) { return false; } return true; } void process() { int answer = 1; for (int i = 2; i <= N / i; i++) { bool divides = false; int power = 0; while (N % i == 0) { divides = true; power++; N /= i; } if (divides) { answer *= phi_prime(i, power); } } if (N > 1) { answer *= phi_prime(N, 1); } printf("%d\n", answer / 2); } int main() { while (read()) { process(); } return 0; }