C语言题目:求2~1000的素数,写出算法。求神指点(效率越高越好)

如题所述

#include<stdio.h>
bool IsPrime(int m)
{
int i;
for(i=2;i<m;++i)
{
if(0==m%i)
break;
}
if(i==m)
return true;
else
return false;
}
int main(void)
{
int val;
int i,j;
//printf("请输入一个大于2的整数,将输出小于其的所有素数:");
scanf("%d",&val);
for(i=2;i<=val;++i)
{
if(IsPrime(i))
printf("%d\n",i);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-19
#include<stdio.h>
#include<math.h>
int main()
{
int i, n;
for ( n = 2; n <= 1000; n++ )
for(i=2;i<= sqrt( n );i++) //i <sqrt(n)时则自然跳出循环
{
if(n%i==0)
{
break;
}
}
if(i < sqrt(n) )

printf("%4d", n ); //输出素数

return 0;
}
第2个回答  2014-03-18
两个for循环