#include #include #include #include #include using namespace std; constexpr int NMAX = 1e7; int primes[665000], np = 0; int8_t mu[NMAX + 1]; int main() { int N; cin >> N; memset(mu, 2, sizeof(mu)); mu[0] = 0, mu[1] = 1; int ans = 1; for(int i = 2; i <= N; ++i) { if(mu[i] == 2) { primes[np++] = i; mu[i] = -1; } const int8_t muval = -mu[i]; for(int j = 0; j < np; ++j) { const int p = primes[j]; const int idx = i * p; if(idx > N) break; if(i % p == 0) { mu[idx] = 0; break; } else { mu[idx] = muval; } } ans += mu[i]; } cout << ans << "\n"; }