int32_t FareyLength (int32_t n) { int32_t i = 1; int32_t result = 1; n++; for (; i < n; i++) result += EulerPhi (i); return result; }
int main() { v[0] = 1; v[1] = 1; long long i, j; for (i = 2; i * i < 10000001; i++) { if (!v[i]) { for (j = i * i; j < 10000001; j += i) { v[j] = 1; } } } int index = 0; for (i = 2; i < 10000001; i++) { if (!v[i]) { primes[index++] = i; } } long long input; while(scanf("%lld",&input)==1) { long long divisors=numDiv(input); long long coprimes=EulerPhi(input); if(divisors+coprimes-1 >=input) { printf("0\n"); }else { printf("%lld\n",input-divisors-coprimes+1); } } return 0; }