컴퓨터/백준 알고리즘
백준 알고리즘 - 17103번: 골드바흐 파티션 [Java]
이상한 나그네
2023. 9. 24. 00:53
문제: https://www.acmicpc.net/problem/17103
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
boolean[] arr = new boolean[1000001];
Arrays.fill(arr, 2, arr.length, true);
for(int i = 2; i * i <= arr.length; i++) {
if(arr[i]) {
for(int j = i * i; j < arr.length; j += i)
arr[j] = false;
}
}
while(N-- > 0) {
int num = sc.nextInt();
int cnt = 0;
for(int i = 2; i <= num / 2; i++) {
if(arr[i] && arr[num - i])
cnt++;
}
System.out.println(cnt);
}
}
}
2. 설명
에라토스테네스의 체를 이용하여 소수들을 전부 구한 뒤 소수들 중 합이 입력한 값과 동일한 것의 개수를 출력하면 문제는 해결됩니다.