골드바흐의 추측

BiBi·2021년 1월 21일
0

코딩테스트연습

목록 보기
52/66

cin cout보다 scanf printf가 더 빠르다

#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <string>
#include <cmath>
#include <time.h>
using namespace std;



int main() {
	//freopen("input.txt", "rt", stdin);

	bool arr[1000001];
	
	for (int i = 2; i <= 1000000; i++) {
		arr[i] = 1;
	}
	for (int i = 2; i <= sqrt(1000000); i++) {
		for (int j = i * 2; j <= 1000000; j += i) {
			if (arr[j] == 0) {
				continue;
			}
			arr[j] = 0;
		}
	}

	int num;

	while (1) {
		scanf("%d", &num);
		if (num == 0) {
			break;
		}
		int flag = 0;
		for (int i = 3; i <= num / 2; i += 2) {
			if (arr[i]==1 && arr[num - i] == 1) {
				flag = 1;
				printf("%d = %d + %d\n", num, i, num - i);
				break;
			}
		}
		if (flag == 0) {
			printf("Goldbach's conjecture is wrong.\n");
		}
	}


	return 0;
}
profile
Server Network Engineer

0개의 댓글