Cod sursa(job #3264656)

Utilizator dragonpeti53Meszaros Peter dragonpeti53 Data 22 decembrie 2024 23:10:48
Problema Ciurul lui Eratosthenes Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.92 kb
use std::io;
use std::fs;

fn main () {
    let input = fs::read_to_string("ciur.in").expect("error reading file");
    let n: i32 = input.trim().parse().expect("not a num");

    let mut vector: Vec<bool> = Vec::new();

    for _ in 0..n {
        vector.push(true);
    }

    if let Some(val) = vector.get_mut(0) { 
        *val = false;
    }

    if let Some(val) = vector.get_mut(1) {
        *val = false;
    }

    let mut i: i32 = 2;
    let mut j: i32;
    while i*i < n {
        j = 2;
        while i*j < n {
            let a = i*j;
            if let Some(val) = vector.get_mut(a as usize) {
                *val = false;
            }
            j += 1;
        }
        i+=1;
    }

    let mut c: i32 = 0;
    for i in 0..n {
        if let Some(value) = vector.get(i as usize) {
            if *value {
                c += 1;
            }
        }
    }

    fs::write("ciur.out", c.to_string()).expect("err writing");
}