#include <stdio.h> #include <iostream> #include <algorithm> #include <string> #include <vector> #include <math.h> using namespace std; int num[1000010]; vector<int> prime; void eratos() { for(int i = 2; i <= 1000000; i++) { num[i] = i; } for(int i = 2; i <= 1000000; i++) { if(num[i] == 0) { continue; } else if(num[i] == i) { for(int j = i+i; j <= 1000000; j += i) { num[j] = 0; } } } } int main(void) { // freopen("B6588_input.txt", "r", stdin); eratos(); // 에라토스테네스의 체를 통해 찾은 소수 삽입 for(int i = 2; i <= 1000000; i++) { if(num[i] != 0) { prime.push_back(i); } } while(1) { int n; scanf("%d", &n); if(n == 0) { break; } bool find = false; // 찾은 소수 크기만큼 for(int i = 0; i < prime.size(); i++) { if(num[prime[i]] + num[n-prime[i]] == n) { find = true; printf("%d = %d + %d\n", n, num[prime[i]], num[n-prime[i]]); break; } } if(find == false) { printf("Goldbach's conjecture is wrong.\n"); } } return 0; } | cs |
'Baekjoon > Math' 카테고리의 다른 글
[백준 2004] 조합 0의 개수 (Math) (C/C++) (★) (0) | 2020.01.25 |
---|---|
[백준 1676] 팩토리얼 0의 개수 (Math) (C/C++) (0) | 2020.01.25 |
[백준 6658] 골드바흐의 추측 (Math) (C/C++) (★) (0) | 2020.01.25 |
[백준 11576] Base Conversion (Math) (C/C++) (0) | 2020.01.25 |
[백준 1212] 8진수 2진수 (Math) (C/C++) (0) | 2020.01.24 |