C语言求素数问题!!
<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>
页:
[1]