找回密码
 注册会员
查看: 627|回复: 0

C语言求素数问题!!

[复制链接]
发表于 2010-1-28 14:52:47 | 显示全部楼层 |阅读模式
<p>C语言求素数问题!!</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:5 -</p>
<p>解决时间:2010-1-28 14:52</p>
<p>#include <stdio.h></p>
<p>#include <math.h></p>
<p>void main()</p>
<p>{</p>
<p>int m,i,k;</p>
<p>for(m=100;m<=200;m++)</p>
<p>{k=sqrt(m);</p>
<p>for(i=2;i<=k;i++)</p>
<p>{if(m%i==0)</p>
<p>continue;</p>
<p>printf("%d ",m);}</p>
<p>}}</p>
<p>要求输出100到200之间的素数,哪里错了啊??不要用书上的那种</p>
<p>提问者: 嘿嘿老头 - 一级</p>
<p>最佳答案</p>
<p>光从语句的用法上来看,continue的用法出了问题,既然m%i==0成立,就说明</p>
<p>m不是素数了,continue只作用与内层循环,这时应该用break语句跳出内层循环,最后再加一个条件如果if(i>k)则m是素数,</p>
<p>#include <stdio.h></p>
<p>#include <math.h></p>
<p>void main()</p>
<p>{</p>
<p>int m,i,k;</p>
<p>for(m=100;m<=200;m++)</p>
<p>{k=sqrt(m);</p>
<p>for(i=2;i<=k;i++)</p>
<p>{</p>
<p>if(m%i==0)</p>
<p>break;</p>
<p>}</p>
<p>if(i>k)</p>
<p>printf("%d ",m);</p>
<p>}</p>
<p>}</p>
<p>0</p>
<p>回答者:</p>
<p>々旋律々 - 五级   2010-1-28 03:16</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>谢谢了,以后还得请教</p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-8-2 21:21

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表