use proconio::input; fn main() { input! { n: usize } let mut mu = vec![1; n + 1]; let mut sieve = vec![true; n + 1]; for i in 2..=n { if sieve[i] { for j in (i..=n).step_by(i) { sieve[j] = false; mu[j] *= -1; } for j in (i * i..=n).step_by(i * i) { mu[j] = 0; } } } let ans = mu[1..].iter().sum::(); println!("{ans}"); }