컴퓨터 공학/백준
[백준] JAVA 자바 : 소수 찾기 (1978번)
kim-dev
2024. 1. 21. 22:58
반응형

제목과 같이 소수를 찾는 문제이다.
사실 에라토스테네스의 체 알고리즘을 써야 할 것 같은데… 나는 그런 개념이 존재한다는 사실을 이 문제를 다 풀고 나서야 알았다…ㅋㅋㅋㅋㅋ
다음 문제가 소수 구하기던데, 그 문제를 풀 때 에라토스테네스의 체를 써봐야겠다!
import java.io.*;
public class PrimeNumber_1978 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = stoi(br.readLine());
int cnt = N; // 소수의 개수. N개에서 합성수를 만날 때마다 1씩 감소시킬 것.
String[] n_list = br.readLine().split(" ");
for (int i=0; i<N; i++) {
int n = stoi(n_list[i]);
if (n == 1) { // 1은 소수가 아니므로
cnt--; // 개수를 하나 감소시킨다
} else { // 1이 아닌 수를 만나면
for (int j=2; j<n; j++) {
if (n%j == 0) { // 그 수가 만약 합성수라면
cnt--; // 소수의 개수를 하나 감소시킨다
break;
}
}
}
}
sb.append(cnt);
System.out.print(sb);
br.close();
}
public static int stoi(String str) {
return Integer.parseInt(str);
}
}
로그인
www.acmicpc.net
작성일자: 2023-09-09