C语言验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。

例如,6=3+3,8=3+5,…,18=5+13。要求将6~100之间的偶数都表示为两个素数之和,输出时一行输出五组。【输入形式】无输入【输出... 例如,6=3+3,8=3+5,…,18=5+13。要求将6~100之间的偶数都表示为两个素数之和,输出时一行输出五组。
【输入形式】
无输入
【输出形式】
按从小到大、每组五行,每组间用一个空格分隔。
每组的格式为:%4d=%2d+%2d。
帮我看一下我错在哪里,输出没有东西
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,n,m,k,count;
count=0;
for(n=6;n<=100;n+=2){
for(a=3;a<=n/2;a++)
for(m=2;m<=a/2;m++)
if(a%m==0)
break;
if(m>a/2)

b=n-a;
for(k=2;k<=b/2;k++)
if(b%k==0)
break;
if(k>b/2)
printf("%d=%d+%d",n,a,b);
count++;
if(count%5==0)
printf("\n");

}

return 0;
}
展开
 我来答
刺友互
高粉答主

2019-06-20 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:74万
展开全部

1、基于sympy的素数判定。

2、看看100是否可以写成两个素数的和。

3、908有15种方法,写成两个素数的和。

4、看看10到1000之间的偶数,最多有多少种方法可以写成两个素数的和。答案是52。

5、看看1000以内的偶数,有多少个数字有52种方法可以写成两个素数的和。恰好有一个。

6、看看1000以内的偶数,有哪些数字只有1种方法可以写成两个素数的和。只有12。

7、看看10000以内的偶数,有哪些数字只有1种方法可以写成两个素数的和。这个过程耗时长达3分钟,答案仍旧是只有12。

8、看看2000以内的偶数,有哪些数字不可以写成两个素数的和。这个反例不可能在2000以内找到,也就没有任何返回。

风若远去何人留
推荐于2017-10-08 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

修改如下

#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,n,m,k,count;
count=0;
for(n=6;n<=100;n+=2){
for(a=3;a<=n/2;a++)
{
for(m=2;m<=a/2;m++)
if(a%m==0)
break;
    if(m>a/2)
b=n-a;
for(k=2;k<=b/2;k++)
if(b%k==0)
break;
if(k>b/2)
{
printf("%d=%d+%d ",n,a,b);
count++;
break;//对于每个数 只输出一组,如果要全输出的话,去掉这个break;
}
}
if(count%5==0)
printf("\n");

}

return 0;
}
更多追问追答
追问
去掉break 运行结果中混入了非素数加素数 这怎么办大神
追答
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,n,m,k,count;
count=0;
for(n=6;n<=100;n+=2){
for(a=3;a<=n/2;a++)
{
for(m=2;m<=a/2;m++)
if(a%m==0)
break;
    if(m>a/2)
b=n-a;
else continue;
for(k=2;k<=b/2;k++)
if(b%k==0)
break;
if(k>b/2)
{
printf("%d=%d+%d ",n,a,b);
count++;
//break;//对于每个数 只输出一组,如果要全输出的话,去掉这个break;
}
}
if(count%5==0)
printf("\n");

}

return 0;
}

试试这个 加了一个else continue;

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑞睿达6O
2019-11-26
知道答主
回答量:1
采纳率:0%
帮助的人:680
展开全部
因为10000以内的素数有1229个。奇偶数分别有5000个,小于等于6的偶数有3个,所以偶数为4997个,4997是1229的4倍左右,所以可知道,一个偶数可以分为无数个数之和等于它,这其中几个数中至少有两个是素数,因此大于6的偶数都可以表示为两个素数之和。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式