문제 풀이 및 개발 공간

[백준] 15965번 k번째 소수 문제! (silver 2 본문

백준공부/java

[백준] 15965번 k번째 소수 문제! (silver 2

gomduri43 2022. 8. 17. 15:31

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
		int n=Integer.parseInt(br.readLine());
		int[] num=new int[15*n];
		num[2]=1;
		int count=0;
		for(int i=3; i<num.length; i+=2) {
			num[i]=1;
		}
		
		for(int i=3; i<num.length; i+=2) {
			if(num[i]==0) {
				continue;
			}
			for(int j=i+i; j<num.length; j+=i) {
				num[j]=0;
			}
		}
		
		for(int i=0; i<num.length; i++) {
			if(num[i]!=0) {
				count++;
				if(count==n) {
					bw.write(i+"");
                    break;
				}
			}
		}
		bw.flush();
	}
}
//에라토스테네스의 체를 이용하여, 방생성하여 저장, 그후, i의 배수들을 지우고,
//마지막에 소수일 경우를 세어서 n번째 소수를 찾았다.