🌞Algorithm/🔥Baekjoon
[Baekjoon] 9842_Prime
뿌야._.
2024. 9. 5. 16:26
문제(출처: https://www.acmicpc.net/problem/9842)
< Prime >
문제 풀이
에라토스테네스의 체를 사용하여 n번째 소수를 구한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class _9842_ { // Prime
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
boolean arr[] = new boolean[100000001];
arr[0] = true;
arr[1] = true;
for (int i = 2; i <= Math.sqrt(100000001); i++) {
if (!arr[i]) {
for (int j = i + i; j < 100000001; j += i) {
arr[j] = true;
}
}
}
ArrayList<Integer> list = new ArrayList<>();
for (int i = 2; i < 100000001; i++) {
if (!arr[i]) {
list.add(i);
}
}
System.out.println(list.get(n-1));
}
}
변수)
n : n번째
arr : 소수 판별
list : 소수만 저장한 list
n을 입력받는다. 에라토스테네스의 체를 사용하여 100000000까지 소수를 판별한다. 소수라면 ArrayList에 저장한다.
최종 ArrayList의 n-1번째 값을 출력한다.