백준 알고리즘
[Silver V] 소수 찾기 - 1978
성능 요약
메모리: 13152 KB, 시간: 8 ms
분류
수학(math), 정수론(number_theory), 소수 판정(primality_test), 에라토스테네스의 체(sieve)
문제 설명
주어진 수 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
29
30
31
32
33
use std::fmt::Write;
use std::io;
fn main() {
let mut input_a = String::new();
io::stdin().read_line(&mut input_a).unwrap();
let v: Vec<i32> = input_a
.split_whitespace()
.map(|x| -> i32 { x.parse().unwrap() })
.collect();
let mut count = 0;
let mut r = 0;
let mut test = 0;
let mut input_b = String::new();
io::stdin().read_line(&mut input_b).unwrap();
let v2: Vec<i32> = input_b
.split_whitespace()
.map(|x| -> i32 { x.parse().unwrap() })
.collect();
for i in 0..v[0] {
for j in 1..v2[test] + 1 {
if (v2[test] % j) == 0 {
count += 1;
}
}
if count == 2 {
r += 1;
}
count = 0;
test += 1;
}
println!("{}", r);
}