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;
} 展开
【输入形式】
无输入
【输出形式】
按从小到大、每组五行,每组间用一个空格分隔。
每组的格式为:%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;
} 展开
3个回答
展开全部
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以内找到,也就没有任何返回。
展开全部
修改如下
#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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为10000以内的素数有1229个。奇偶数分别有5000个,小于等于6的偶数有3个,所以偶数为4997个,4997是1229的4倍左右,所以可知道,一个偶数可以分为无数个数之和等于它,这其中几个数中至少有两个是素数,因此大于6的偶数都可以表示为两个素数之和。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询