https://www.acmicpc.net/problem/2960

 

2960๋ฒˆ: ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

2, 4, 6, 8, 10, 3, 9, 5, 7 ์ˆœ์„œ๋Œ€๋กœ ์ง€์›Œ์ง„๋‹ค. 7๋ฒˆ์งธ ์ง€์›Œ์ง„ ์ˆ˜๋Š” 9์ด๋‹ค.

www.acmicpc.net

 

 

 

 

 

์˜ˆ์ „์— ์†Œ์ˆ˜ ํŒ๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์œ ๋ช…ํ•œ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ‘ผ ์ ์ด ์žˆ๋Š”๋ฐ ๊ทธ๊ฑฐ๋ž‘์€ ๋‹ค๋ฅธ ๋ฌธ์ œ์ด๋‹ค. ๊ทธ๊ฑด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋‚˜๊ณ  ์–ด๋ ค์› ๋Š”๋ฐ, ์ด ๋ฌธ์ œ๋Š” ๊ทธ๋ƒฅ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด์˜ ์›๋ฆฌ๋ฅผ ์ ์šฉํ•ด์„œ ํ’€์–ด๋ณด๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

 

 

 

 

์ˆซ์ž N์— ๋Œ€ํ•ด ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์ ์šฉํ•˜์—ฌ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆ˜๋ฅผ ์ง€์›Œ๋‚˜๊ฐˆ ๋•Œ, K๋ฒˆ์งธ๋กœ ์ง€์›Œ์ง€๋Š” ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๊ฐ ์ˆ˜์˜ ์ง€์›Œ์กŒ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•  boolean ๋ฐฐ์—ด์„ ๋งŒ๋“ค์—ˆ๋‹ค.

 

1. K๋ฒˆ์งธ๋กœ ์ง€์›Œ์ง€๋Š” ์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

1. ์•„์ง ์ง€์šฐ์ง€ ์•Š์€ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ P๋ฅผ ์ฐพ๊ณ , ์ง€์šด๋‹ค.

2. P์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ฐพ์•„ ์ง€์šด๋‹ค.

 

 

 

 

์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");

		int N = Integer.parseInt(st.nextToken());
		int K = Integer.parseInt(st.nextToken());
		
		boolean[] arr = new boolean[N + 1];
		
		int count = 0;
		int answer = 0;
		
		while(true) {
			//P ์ฐพ๊ธฐ
			int P = 0;
			for(int i = 2; i <= N; i++) {
				if(!arr[i]) {
					P = i;
					break;
				}
			}
			
			//P์˜ ๋ฐฐ์ˆ˜ ์ง€์šฐ๊ธฐ
			int i = 1;
			int n = P * i;
			
			while(n <= N) {
				if(!arr[n]) {
					arr[n] = true;
					count++;
				}
				
				if(count == K) {
					answer = n;
					break;
				}
				
				i++;
				n = P * i;
			}
		
			if(count == K) break;
		}
		
		System.out.println(answer);
	}

}

 

 

 

 

 

 

๊ฒฐ๊ณผ

giraffe_