
-Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class BOJ17103 {
static boolean[] primes = new boolean[1000001];
static {
Arrays.fill(primes, true);
primesCalc();
}
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(br.readLine());
int answer = 0;
for (int j = 2; j <= n / 2; j++) {
int gap = n - j;
// 현재 소수 값이고 n에서 소수값 뺀 결과가 소수인 경우 +1
if (primes[j] && primes[gap]) {
answer++;
}
}
System.out.println(answer);
}
}
private static void primesCalc() {
for (int i = 2; i * i < 1000001; i++) {
for (int j = i + i; j < 1000001; j += i) {
if (primes[j]) {
primes[j] = false;
}
}
}
}
}
처음에는 소수를 계속 검사해서 구하는 방법을 썼으나 이러면 시간 문제가 생겨서 미리 만들어 놓으라는 힌트를 보고 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 28278번 스택 2 (0) | 2025.12.26 |
|---|---|
| [백준/Java] 13909번 창문 닫기 (0) | 2025.12.26 |
| [백준/Java] 4948번 베르트랑 공준 (0) | 2025.12.26 |
| [백준/Java] 4134번 다음 소수 (0) | 2025.12.26 |
| [백준/Java] 34946번 셔틀 탈래 말래 탈래 말래 애매하긴 해 (0) | 2025.12.26 |