6588_골드바흐의 추측(C++)

#include <iostream>
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);

	int prime[1000000];
	int pn =0;
	bool check[1000000 + 1]; 
	for (int i = 2; i <= 1000000;i++){
		if (check[i] == false) {
			prime[pn++] = i;
			for (int j = i+i; j <= 1000000; j += i) check[j] = true;
		}
	}
	while (1) {
		int n;
		cin >> n;
		if (n == 0) break;
		for (int i = 0; i < pn; i++) {
			if (check[n - prime[i]] == false) {
				cout << n << " = " << prime[i] << " + " << n - prime[i] << '\n';
				break;
			}
		}
	}
	return 0;
}

에라토스테네스의 체를 사용하여 푼 문제.
시간 관리가 까다로웠다.
에라토스테네스의 체 관련 게시글은 다음 링크 참고.
https://velog.io/@kimeunseo58/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98-%EC%B2%B4

좋은 웹페이지 즐겨찾기