From bf587cd32151d16eadb37fbc8d56699dbf6edcef Mon Sep 17 00:00:00 2001 From: suyeun84 <81475092+suyeun84@users.noreply.github.com> Date: Wed, 12 Mar 2025 08:58:23 +0900 Subject: [PATCH] =?UTF-8?q?[20250312]=20BOJ=20/=20G3=20/=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=EC=9D=98=20=EC=97=B0=EC=86=8D=ED=95=A9=20/=20?= =?UTF-8?q?=EA=B9=80=EC=88=98=EC=97=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \354\227\260\354\206\215\355\225\251.md" | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 "suyeun84/202503/12 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\251.md" diff --git "a/suyeun84/202503/12 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\251.md" "b/suyeun84/202503/12 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\251.md" new file mode 100644 index 00000000..003dd76b --- /dev/null +++ "b/suyeun84/202503/12 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\251.md" @@ -0,0 +1,55 @@ +```java +import java.io.*; +import java.util.*; + +public class boj1644 { + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + static int N; + static boolean[] isPrime; + static boolean flag = false; + public static void main(String[] args) throws Exception { + N = Integer.parseInt(br.readLine()); + int start = 2, end = 3, res = 5, answer = 0; + isPrime = new boolean[N+1]; + primeCheck(); + if (N == 5) answer = 1; + if (isPrime[N]) answer++; + while (start < end) { + if (res < N) { + end = nextIdx(end); + res += end; + } else if (res >= N) { + res -= start; + start = nextIdx(start); + } + if (res == N && start != end) { + answer++; + } + if (flag) break; + } + System.out.println(answer); + + } + static void primeCheck() { + Arrays.fill(isPrime, true); + isPrime[0] = false; + isPrime[1] = false; + for (int i = 2; i <= Math.sqrt(N+1); i++) { + if(isPrime[i]) { + for (int j = i*i; j <= N; j+=i) { + isPrime[j] = false; + } + } + } + } + + static int nextIdx(int idx) { + for (int i = idx+1; i <= N; i++) { + if (isPrime[i]) return i; + } + flag = true; + return idx; + } +} +```