// Prime counting benchmark - count primes up to N
fn is_prime(n: i64) -> bool {
    if n < 2 { return false; }
    if n == 2 { return true; }
    if n % 2 == 0 { return false; }
    let mut i = 3i64;
    while i * i <= n {
        if n % i == 0 { return false; }
        i += 2;
    }
    true
}

fn count_primes(n: i64) -> i64 {
    (2..=n).filter(|&x| is_prime(x)).count() as i64
}

fn main() {
    let count = count_primes(10000);
    println!("Primes up to 10000: {}", count);
}
