Cod sursa(job #3364867)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 12 septembrie 2026 17:12:56
Problema Ciurul lui Eratosthenes Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.74 kb
use std::fs;
use std::io::{BufWriter, Write};

fn main() {

    let file = fs::File::create("ciur.out").unwrap();
    let mut writer = BufWriter::new(file);

    let input: String = fs::read_to_string("ciur.in").unwrap();
    let mut tokens = input.split_whitespace();

    let mut next_num = || -> usize {
        tokens.next().unwrap().parse::<usize>().unwrap()
    };

    let n = next_num();
    let mut sieve = vec![false; n + 1];

    for i in 2..=n {
        if sieve[i] == true { continue; }
        for j in (i+i..=n).step_by(i) {
            sieve[j] = true;
        }
    }

    let mut primes: i32 = 0;
    for i in 2..=n {
        if sieve[i] == false {
            primes += 1;
        }
    }

    writeln!(writer, "{}", primes).unwrap();
}