Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

mo1lusca의 블로그

[백준] 1978 소수 찾기 - Rust 본문

PS

[백준] 1978 소수 찾기 - Rust

mo1lusca 2025. 5. 7. 10:48

 

 

https://www.acmicpc.net/problem/1978

 


 

소수를 찾아주면 된다..

 

use std::io::{self, BufRead, Write};

fn is_prime(n: u32) -> bool {
    if n < 2 {
        return false;
    }
    for i in 2..=((n as f64).sqrt() as u32) {
        if n % i == 0 {
            return false;
        }
    }
    true
}

fn main() {
    let mut ilock = io::stdin().lock();
    let mut olock = io::stdout().lock();

    let mut buf = String::new();

    ilock.read_line(&mut buf).expect("error");
    buf.trim().parse::<usize>().unwrap();

    buf.clear();
    ilock.read_line(&mut buf).expect("error");
    let numbers = buf.trim().split(" ").map(|s| s.parse::<u32>().unwrap()); //iter상태

    let count = numbers.filter(|&x| is_prime(x)).count();
    writeln!(olock, "{count}").unwrap();
}

 

 

Rust로 입력을 받을땐 문자열로 받아 한글자씩 분리해 정수로 바꾼다.

이 말은 즉슨 숫자의 갯수는 딱히 쓸모가 없다는 것이다.

따라서 첫번째 line은 값을 저장하지 않고 버려준다.

 

소수 판별은 간단한 함수를 만들어 사용한다.