验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。
答案:2 悬赏:20
解决时间 2021-02-12 16:51
- 提问者网友:冥界祭月
- 2021-02-12 01:49
验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。
最佳答案
- 二级知识专家网友:woshuo
- 2021-02-12 03:24
这个循环就是:用被判断的数m去依次除以2~小于根号m的最大整数c。
你那个问题所在的代码这么写,主要是因为在语句 for(i=2;i<=c;i++)中,最后还有1个i++,就是说,i>c之后才会退出循环,所以 if(i==c+1)表示如果最后i正好等于c+1,就说明 for(i=2;i<=c;i++)这个循环确实是因为i>c才结束的,而不是被break的。这样也就充分证明了,2~c都不能整除m,所以m必然是质数。
你那个问题所在的代码这么写,主要是因为在语句 for(i=2;i<=c;i++)中,最后还有1个i++,就是说,i>c之后才会退出循环,所以 if(i==c+1)表示如果最后i正好等于c+1,就说明 for(i=2;i<=c;i++)这个循环确实是因为i>c才结束的,而不是被break的。这样也就充分证明了,2~c都不能整除m,所以m必然是质数。
全部回答
- 1楼网友:风格单纯
- 2021-02-12 03:45
修改如下
#include
#include
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;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯