当前位置: 代码迷 >> C语言 >> [讨论]为了再次增强大家的自信心(菜鸟们,包括我),再弄道题给大家做!
  详细解决方案

[讨论]为了再次增强大家的自信心(菜鸟们,包括我),再弄道题给大家做!

热度:152   发布时间:2007-10-15 13:21:00.0
[讨论]为了再次增强大家的自信心(菜鸟们,包括我),再弄道题给大家做!
题目:判断101-200之间有多少个素数,并输出所有素数。
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
搜索更多相关的解决方案: 自信心  

----------------解决方案--------------------------------------------------------
不错,不错,楼主创造了一个求作业贴的新颖标题,有创新,建议标上原创加精
----------------解决方案--------------------------------------------------------
回复:(cutboy)[讨论]为了再次增强大家的自信心(菜鸟...
你斑竹怎么能那样说我呢?这都是我学过来的.<<C语言教程>>里的题目.有答案的,只是拿出来让刚学习C的人做做.免的让他们失去信心,我当初就差点灰心,虽然我现在并不怎么样!可是我很高兴,我发觉我进步很大,以前看到比较长的C程序就像看天书,现在我可以了,还能编比较长的C程序.当初要是灰心了能有今天的进步吗?
----------------解决方案--------------------------------------------------------
以下是引用Knocker在2007-10-15 13:27:33的发言:
不错,不错,楼主创造了一个求作业贴的新颖标题,有创新,建议标上原创加精

老K这你就不对了,这里初学者很多,让大家讨论讨论未必不是好事
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k;
for(m=100;m<=200;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d ",m);
}
}
printf("\n");

}
----------------解决方案--------------------------------------------------------

以下是引用cutboy在2007-10-15 13:21:00的发言:
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数

用开方不太好,对于某些数来说,用开方可能算不准,例如121,数学上开方是11,但计算机计算时有可能为10.99999
所以,最好用乘方比较i*i<=n


----------------解决方案--------------------------------------------------------
k=sqrt(m+1);这样就可以了吧.?
----------------解决方案--------------------------------------------------------

开方的效率没有乘方高
----------------解决方案--------------------------------------------------------

赞成,开始不要太难,不然就没兴趣了

[此贴子已经被作者于2007-10-15 16:11:52编辑过]


----------------解决方案--------------------------------------------------------
以下是引用cutboy在2007-10-15 13:21:00的发言:
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数


这个方法可以在简单点,偶数不会是素数,所以循环的话就是i+2,不用i++


----------------解决方案--------------------------------------------------------
  相关解决方案