🌞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번째 값을 출력한다.

 



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 17198_Bucket Brigade  (0) 2024.09.09
[Baekjoon] 6186_Best Grass  (0) 2024.09.06
[Baekjoon] 6324_URLs  (0) 2024.09.04
[Baekjoon] 25193_곰곰이의 식단 관리  (2) 2024.09.03
[Baekjoon] 9037_The candy war  (1) 2024.09.02