문제
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
전에 정리해뒀던
[Java] 소수 찾기
문제 https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자..
dev2som.tistory.com
의 에라토스테네스 체 방법을 참고했다.
설명은 주석으로!
package boj;
import java.io.*;
public class BOJ1978 {
static boolean[] isComposite;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] input = new int[n];
int max = 0;
String[] inputs = br.readLine().split("\\s");
for (int i = 0; i < n; i++) {
input[i] = Integer.parseInt(inputs[i]);
max = Math.max(max, input[i]);
}
isComposite = new boolean[max + 1];
isComposite[1] = true;
for (int i = 2; i * i <= max; i++) {
if (isComposite[i])
continue;
for (int j = i + i; j <= max; j += i) {
isComposite[j] = true;
}
}
int cnt = 0;
for (int i = 0; i < n; i++) {
if (!isComposite[input[i]]) {
++cnt;
}
}
System.out.println(cnt);
br.close();
}
}
'Preparing Coding Test > Baekjoon' 카테고리의 다른 글
[Java/백준/구현,배열] 10157번: 자리 배정 (0) | 2021.02.25 |
---|---|
[Java/백준/백트레킹] 1987번: 알파벳 (0) | 2021.02.18 |
[Java/백준/배열] 16926번: 배열 돌리기 1, 17406번: 배열 돌리기 4 (0) | 2021.02.14 |
[Java/백준/스택(Stack)] 2493번: 탑 (0) | 2021.02.14 |
[Java/백준/재귀, 분할정복] 2630번: 색종이 만들기 (0) | 2021.02.14 |