백준공부/java
[백준] 31216번 슈퍼 소수 (silver 5
gomduri43
2024. 2. 27. 19:30
import java.io.*;
import java.util.*;
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));
ArrayList<Integer> arr=new ArrayList<>();
int[] num=new int[318138];
num[1]=1;
for(int i=2; i<318138; i++){
if(num[i]==1){
continue;
}
for(int j=i+i; j<318138; j+=i){
num[j]=1;
}
}
int k=1;
for(int i=2; i<318138; i++){
if(num[i]==0){
if(num[k]==0){
arr.add(i);
}
k++;
}
}
int n=Integer.valueOf(br.readLine());
for(int i=0; i<n; i++){
int q=Integer.valueOf(br.readLine());
bw.write(arr.get(q-1)+"\n");
}
bw.flush();
}
}
// 슈퍼소수란 결국, n번째의 n이 소수일 경우만 추가를 해서. 새롭게 만들어진 수 배열에서의
// n번째 수들을 구하는 것