๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/17103)
< ๊ณจ๋๋ฐํ ํํฐ์ >
๋ฌธ์ ํ์ด
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ํ์ฉํ์ฌ ๋ฏธ๋ฆฌ ์์๋ฅผ ํ๋ณํด ๋๋ค. ์๋ฅผ ์ ๋ ฅ๋ฐ์ 2๋ถํฐ (์ ๋ ฅ๋ฐ์ ์/2)๊น์ง ํ์ํ์ฌ ์์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋์ง ํ์ธํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _17103_ { // ๊ณจ๋๋ฐํ ํํฐ์
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(bf.readLine());
boolean arr[] = new boolean[1000001];
for (int i = 2; i < 500001; i++) {
if (!arr[i]) {
for (int j = i + i; j < 1000001; j += i) {
arr[j] = true;
}
}
}
for (int i = 0; i < t; i++) {
int num = Integer.parseInt(bf.readLine());
int cnt = 0;
for (int j = 2; j <= num / 2; j++) {
if (!arr[j] && !arr[num - j]) {
cnt += 1;
}
}
bw.write(cnt + "\n");
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
arr : ์์ ํ๋ณ
num : ์ ๋ ฅ๋ฐ์ ์ ์
cnt : ๊ณจ๋๋ฐํ ํํฐ์ ์ ์
ํ ์คํธ์ผ์ด์ค ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋จผ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ 1000000๊น์ง ์์๋ฅผ ํ๋ณํ๋ค. ํ ์คํธ์ผ์ด์ค ์๋งํผ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. 2๋ถํฐ (์ ์/2)๊น์ง ํ์ํ๋ฉด์ ์์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋์ง ํ๋ณํ๋ค. ์ต์ข ๊ณจ๋๋ฐํ ํํฐ์ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 24039_2021์ ๋ฌด์์ด ํน๋ณํ ๊น? (1) | 2024.04.25 |
---|---|
[Baekjoon] 6588_๊ณจ๋๋ฐํ์ ์ถ์ธก (0) | 2024.04.24 |
[Baekjoon] 2251_๋ฌผํต (0) | 2024.04.22 |
[Baekjoon] 1018_์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (1) | 2024.04.19 |
[Baekjoon] 10973_์ด์ ์์ด (0) | 2024.04.18 |