当前位置: 代码迷 >> C语言 >> 求素数的问题
  详细解决方案

求素数的问题

热度:353   发布时间:2006-08-16 11:09:43.0
求素数的问题

题目是求100~200间的全部素数
#include<math.h>
main()
{
int m,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)brek;
if(i>=k+1){prntf("%d",m);n=n+1;}
if(n%10==0)printf("\n");
}
printf("\n");
}
请问倒数第5句的IF语句中的小括号可以改成i=k+1吗??为什么

搜索更多相关的解决方案: 素数  

----------------解决方案--------------------------------------------------------
以下是引用comjaycn在2006-8-16 11:09:43的发言:


if(m%i==0)brek;

错了


----------------解决方案--------------------------------------------------------
i没定义,
----------------解决方案--------------------------------------------------------

不好意思,是我打错和打漏了上面两个地方, 还有一个地方printf也打错了,昨晚睡得不好~~~~
程序是对的,请问可以讲倒数第5句的IF语句中的小括号可以改成i==k+1吗??为什么


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

何必那么复杂呢

#include<iostream>
using namespace std;
int main()
{
int m,k,i;
for(m=100;m<=200;++m)
{
k=1;
for(i=2;i<m;++i)
if(m%i==0)
k=0;


if(k==1)
cout<<m<<' ';
}
cout<<endl;

system("pause");

return 0;
}


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

请问楼上的是C吗?

对 for(m=101;m<=200;m=m+2)
这句不解,为什么要 m=m+2 ?


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


什么是质数,和直属一样吗?一样的话就用这个。

issushu(int m)
{int j;
for(j=2;j<m;++j)
if(m%j==0)
return 0;
/*else*/
return 1; /*qiangbunengjia else */
}

楼主弄的太复杂了。为什么要 m=m+2?我也不懂.

[此贴子已经被作者于2006-8-16 15:09:27编辑过]


----------------解决方案--------------------------------------------------------
我用C++写的
我估计他用m+=2的意思应该是代表的都是奇数
素数除了2以外其他应该都是奇数吧
(随便说说)
----------------解决方案--------------------------------------------------------
好快.又有人发帖
----------------解决方案--------------------------------------------------------

哈哈,明白了,m=m+2;是因为偶数就不用考虑了,能被2整除的,肯定不是素数


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