PS/Baekjoon Online Judge

[백준 9020] 골드바흐의 추측 [C]

kimyoungrok 2021. 8. 27. 11:00

백준 - 9020


풀이

"백준 6588, 골드바흐의 추측"과 비슷한 문제이다.

단, 가능한 골드바흐 파티션이 여러 가지인 경우에 두 소수의 차이가 가장 작은 것을 출력해야 한다.

N = 4인 경우에는 예외로 처리해줬다.


소스코드

#include <stdio.h>
#include <math.h>
#include <stdbool.h>
#define MAX 10001
bool cNum[MAX];
int main(){
    int sq = sqrt(MAX-1);
    for (int i = 2; i <= sq; i++)
        for (int j = 2*i; j < MAX; j += i)
            cNum[j] = true;
	
    int T;
    scanf("%d", &T);
    while (T--){
        int N;
        scanf("%d", &N);
		
        if (N == 4){
            puts("2 2");
            continue;
        }
        int first = 3, last = N-3;
        int temp[2] = {first, last};
        while (first <= last){
            if (!cNum[first] && !cNum[last] && first+last == N){
                temp[0] = first;
                temp[1] = last;
            }
            first += 2, last -= 2;
        }
		
        printf("%d %d\n", temp[0], temp[1]);
    }
}

출처 및 참고자료

 

9020번: 골드바흐의 추측

1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아

www.acmicpc.net

 

[백준 6588] 골드바흐의 추측 [C]

풀이 에라토스테네스의 채로 소수가 아닌 수들을 먼저 구한 후 풀이를 했다. 두 수의 합이 N과 같고, 두 수가 소수인경우에만 반복문을 종료해 답을 출력해주면 된다. 소스코드 #include #include #incl

kyr-db.tistory.com

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 2981] 검문 [C]  (0) 2021.08.28
[백준 2023] 신기한 소수 [C]  (0) 2021.08.27
[백준 1963] 소수 경로 [C]  (0) 2021.08.26
[백준 1990] 소수인팰림드롬 [C]  (0) 2021.08.26
[백준 1747] 소수&팰림드롬 [C]  (0) 2021.08.26