#B0003. 验证哥德巴赫猜想

验证哥德巴赫猜想

题目描述

哥德巴赫猜想指出:任何一个大于等于2的偶数都可以表示为两个素数之和。请你编写一个C++程序,验证这个猜想对于给定范围内的偶数是否成立。

输入格式

输入一个整数N(4≤N≤106)N (4 ≤ N ≤ 10^6),表示要验证的最大偶数 程序应验证从4到NN的所有偶数是否符合哥德巴赫猜想

输出格式

对于每个偶数n(4≤n≤N,n为偶数)n (4 ≤ n ≤ N, n为偶数),输出所有可能的素数对(p,q)(p, q),使得p+q=np + q = n 素数对按pp的升序排列 每个偶数输出单独一行,格式为n:p1+q1,p2+q2,...n: p1+q1, p2+q2, ... 如果发现某个偶数不能表示为两个素数之和,立即终止程序并输出Goldbach's conjecture is wrong for n = X

20 
4: 2+2 
6: 3+3
8: 3+5 
10: 3+7, 5+5 
12: 5+7
14: 3+11, 7+7
16: 3+13, 5+11
18: 5+13, 7+11
20: 3+17, 7+13

数据规模与约定

基础数据范围

偶数上限N:4≤N≤1,000,000(106) N:4 ≤ N ≤ 1,000,000(10^6)

保证输入nn为有效偶数(若输入奇数需提示重新输入)

补充

10: 3+7, 5+5

是英文冒号+空格,英文逗号+空格