各位C++高手帮帮忙啊!昨天留了道题,C++一年没动了,早忘了,哪位高手帮做下!!绝对高分

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:22:58
验证哥德巴赫猜想:任何一个大于6的偶数均可表示为俩个素数之和。例如6=3+3,8=3+5,...,18=7+11。将6~100之间的偶数都表示成俩个素数之和,打印时一行打印5组。

是最基础的题~肯定难不住各位高手了!!帮帮忙```小弟绝对补分!评最佳

#include <stdio.h>
#include <math.h>

bool fflag(int x)
{
int j,k;
k=sqrt(x);
for(j=2;j<=k;j++)
if(x%j==0)
return false;
if(j==k+1)
return true;
}
int main()
{
int i,n;
bool fflag(int i);

for(i = 6; i <= 200; i+=2)
{
for(n = 2; n < i; n++)
{
if(fflag(n))
if(fflag(i-n))
{
printf("%d = %d + %d\n",i,n,i-n);
break;
}
if(n == i)
printf("error %d\n",i);
}
}
return 0;
}

运行结果如下:
6 = 3 + 3
8 = 3 + 5
10 = 3 + 7
12 = 5 + 7
14 = 3 + 11
16 = 3 + 13
18 = 5 + 13
20 = 3 + 17
22 = 3 + 19
24 = 5 + 19
26 = 3 + 23
28 = 5 + 23
30 = 7 + 23
32 = 3 + 29
34 = 3 + 31
36 = 5 + 31
38 = 7 + 31
40 = 3 + 37
42 = 5 + 37
44 = 3 + 41