https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
문제 풀이(코드)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int max = 1000;
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = scan.nextInt();
}
// 소수면 false, 소수가 아니면 true
boolean[] checked = new boolean[max + 1];
checked[0] = checked[1] = true;
for (int i = 2; i < Math.sqrt(max); i++) {
if (!checked[i]) { // checked[i]가 false일 때 = 소수일 때
for(int j = i * i; j <= max; j += i) {
checked[j] = true; // checked[j]는 소수가 아님
}
}
}
int count = 0;
for (int i = 0; i < n; i++) {
if (!checked[array[i]]) { // checked가 false = 소수
count++;
}
}
System.out.println(count);
scan.close();
}
}
'알고리즘' 카테고리의 다른 글
[백준 BOJ][JAVA] 2960번: 에라토스테네스의 체 (0) | 2022.09.06 |
---|---|
[백준 BOJ][JAVA] 2252번: 줄 세우기 (0) | 2022.02.13 |
[백준 BOJ][JAVA] 11725번: 트리의 부모 찾기 (0) | 2022.02.11 |
[백준 BOJ][JAVA] 1991번: 트리 순회 (0) | 2022.02.06 |
[백준 BOJ][JAVA] 1956번: 운동 (0) | 2022.02.05 |