用c语言编写一个程序求100-200之间的所有素数,并输出素数。而下面这个程序怎么运行不出正确结果

用c语言编写一个程序求100-200之间的所有素数,并输出素数。而下面这个程序怎么运行不出正确结果#include<stdio.h>#include<math.h>int... 用c语言编写一个程序求100-200之间的所有素数,并输出素数。而下面这个程序怎么运行不出正确结果#include<stdio.h>
#include<math.h>
int main()
{
int n,k,m,i;//n为数,k为除数,m用来表示根号n,i用来统计素数的个数
i=0;
for(n=100;n<200;n+=2)
{
m=sqrt(n);
for(k=2;k<=m;k++)
{
if(n%k==0)
break;
else if(k>m)
{
printf("输出的素数:%d\n",n);
i++;
if(i%5==0)//按5个一行输出
printf("\n");
}
}
}
printf("素数的个数为:%d\n",i);
return 0;
}
展开
 我来答
心若素然皆如生
2016-12-06 · 超过19用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:27.7万
展开全部
n从100开始,每次加2。这样你检索的数据就是100,102,104等等等,都是2的倍数,当然没有素数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__Bruce_Wang__
2016-12-06 · TA获得超过670个赞
知道小有建树答主
回答量:419
采纳率:25%
帮助的人:379万
展开全部
for(n=100; n<200; n+=2),把这句改成
for(n=101; n<200; n+=2)
追问
那我改后为什么还是运行没有正确答案啊?
追答
你的代码逻辑有问题,我帮你修改了一下。

#include
#include
int main()
{
int n,k,m,i;//n为数,k为除数,m用来表示根号n,i用来统计素数的个数
i=0;
for(n=101;nm) {
printf("输出的素数:%d\n",n);
i++;
if(i%5==0)//按5个一行输出
printf("\n");
}
}
printf("素数的个数为:%d\n",i);

getchar();
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nicememory
2016-12-06 · 知道合伙人互联网行家
nicememory
知道合伙人互联网行家
采纳数:326 获赞数:1449
分布式计算技术核心工程师

向TA提问 私信TA
展开全部
因为100到200之间的素数都是奇数 你现在n遍历的是偶数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式