백준(C언어)/22년 8월

8월 14일(일) - 8단계(9020번 *실패->성공)

C0MPAS 2022. 8. 14. 22:45

8단계 - 9020번

 

9020번: 골드바흐의 추측

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

www.acmicpc.net

 

문제점

1. 역시 에라토스테네스의 체를 활용해야한다

-> 추후에 이와 관련된 문제를 따로 더 찾아서 풀어봐야겠다

2. 아직 실버2는 너무 어렵다...

-> 다른 풀이도 더 찾아보면서 내가 왜 완전하게 코드를 작성하지 못했는지에 대한 피드백을 진행해봐야할 것 같다

 

 

풀이

(출처: https://dongkyung.tistory.com/entry/%EB%B0%B1%EC%A4%80-9020%EB%B2%88-c%EC%96%B8%EC%96%B4-%EA%B3%A8%EB%93%9C%EB%B0%94%ED%9D%90%EC%9D%98-%EC%B6%94%EC%B8%A1)

#include<stdio.h>

int main() {
	
	int c[10001] = { 0 };
	c[1] = 1;
	for (int i = 2; i <= 10001; i++)
		for (int j = 2; j * i <= 10001; j++)
			c[i * j] = 1;
	
	int ntest;
	int n;
	int check;
	scanf("%d", &ntest);
	for (int i = 0; i < ntest; i++) {
		scanf("%d", &n);
		check = n / 2;
		for (int m = check; m > 0; m--) {
			if (c[m] != 1 && c[n - m] != 1) {
				printf("%d %d\n", m, n - m);
				break;
			}
		}
	}
}

 

출처: https://www.acmicpc.net/problem/9020