c语言求1到100的素数

大侠们 求解哪错了 跪谢
#include<stdio.h>
#include<math.h>
main()
{
int a[100],i,k,n,m;
for(n=0;n<101;n++)
{a[n]=n+1;k=sqrt(n+1);
for(i=1;i<=k;i++)
if(a[n]%i==0)break;
if(a[n]!=1,i>=k+1)
printf("%d,",a[n]);}
return 0;
}
第一行手抖 写成m 了 应该是n
第二行已改正n<100

这题用数组做挺复杂的,首先你要把1到100的数放进去吧,然后还要用数组下标输出,很麻烦。
可以用简单的方法你参考下:(判断一个数是不是质数,把这个数与2和它自己(包括)之间的数相除,如果有能整除且不是自己则不是质数,如果是自身则是质数)你的思路是开平方根我们思路是相同的只是运用的数学原理不同而已。
int main()
{int i=0;int j=0;
for(i=2;i<100;i++)
{for(j=2;j<=i;j++)
{ if(i%j==0);
if(i==j)
printf("%8d",i)
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-21
测试结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97

代码:将判断素数的模块独立成一个函数,思路清晰一点

#include "stdio.h"
#include "conio.h"

int isShuShu(int n)
{
int i;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}

main()
{
int i;
for(i=2;i<=100;i++)
{
if(isShuShu(i))
{
printf("%3d ",i);
}
}
getch();
}
第2个回答  2012-04-20
i应该从2开始追问

纠结很久 终于调试成功 十分感谢 不过请问为什么不能从1开始

追答

任何整数%1都为0

本回答被提问者采纳
相似回答