๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 24039_2021์€ ๋ฌด์—‡์ด ํŠน๋ณ„ํ• ๊นŒ?

๋ฟŒ์•ผ._. 2024. 4. 25. 21:30

Silver V

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/24039)

< 2021์€ ๋ฌด์—‡์ด ํŠน๋ณ„ํ• ๊นŒ? >

 

๋ฌธ์ œ ํ’€์ด 

 

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•ด ๋‘”๋‹ค. ์—ฐ์†ํ•œ ๋‘ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ ๋’ค ๊ฐ’์„ ๊ณฑํ•ด ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’ ๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒํ•œ๋‹ค.

 

 my solution (Java)

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

public class _24039_ { // 2021์€ ๋ฌด์—‡์ด ํŠน๋ณ„ํ• ๊นŒ?

	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[10001];
		for (int i = 2; i < 5001; i++) {
			if (!arr[i]) {
				for (int j = i + i; j < 10001; j += i) {
					arr[j] = true;
				}
			}
		}

		int a = 2;
		int b = -1;
		for (int i = 3; i < 10001; i++) {
			if (!arr[i]) {
				b = i;
				if (a * b > n) {
					System.out.println(a * b);
					break;
				}
				a = i;
			}
		}
	}
}
๋ณ€์ˆ˜)
n : ์ฃผ์–ด์ง„ ์ˆ˜
arr : ์†Œ์ˆ˜ ํŒ๋ณ„
a, b : ์—ฐ์†ํ•œ ๋‘ ์†Œ์ˆ˜

 

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 10000๊นŒ์ง€ ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค. ๋ฏธ๋ฆฌ ๊ตฌํ•œ ์†Œ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์—ฐ์†ํ•˜๋Š” ๋‘ ์†Œ์ˆ˜๋ฅผ ๊ณฑํ•œ๋‹ค. ๊ณฑํ•œ ๊ฐ’์ด n๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.