백준 1978 - 소수 찾기 [Rust]

[Bronze II] 소수 찾기 - 1978

Posted by Hebi on October 15, 2023

백준 알고리즘

[Bronze II] 소수 찾기 - 1978

문제 링크

성능 요약

메모리: 13216 KB, 시간: 4 ms

분류

소수 판정, 정수론, 수학

제출 일자

2023년 10월 15일 17:35:11

문제 설명

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

출력

주어진 수들 중 소수의 개수를 출력한다.

Code

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
use std::io::{BufReader,BufRead,BufWriter,stdin,Write,stdout};
fn main(){
    let mut reader= BufReader::new(stdin().lock());
    let mut writer= BufWriter::new(stdout().lock());
    let mut input = String::new();
    reader.read_line(&mut input).unwrap();
    let n :i32= input.trim().parse().unwrap();
    input.clear();
    let mut input = String::new();
    reader.read_line(&mut input).unwrap();
    let nums= input.trim().split_whitespace().map(|x|x.parse().unwrap()).collect::<Vec<i32>>();
    let mut result= 0;
    for  i in nums {
        let mut cnt = 0;
        if i >1{
            for j in 2..i{
                if i % j==0 {
                    cnt+=1;
                }
            }
            if cnt ==0 {
                result+=1;
            }
        }
    }
     writeln!(writer,"{}",result).unwrap();
     writer.flush().unwrap();
}