帮我找错一百以内的素数并打印

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:15:27
#include<stdio.h>
#include<math.h>
void main()
{
int i,j,k,a[101];
for(j=1;j<=100;j++)
a[j]=j;
k=sqrt((double)100);
for(i=2;i<=k;i++)
{
for(j=i+1;j<=100;j++)
{
if(j%i==0&&a[j]!=0)
a[j]=0;
}
}
for(j=2;j<=100;j++)
{
if(a[j]!=0)
printf("%d\n",a[j]);
}
}
无法输出十以内的素数难道是编译器的问题我从网上下载的免费版本不会有漏洞吧我看了几遍没问题啊找到有奖励谢了

估计没有错的....

鉴定完毕...

你的循环写反了
#include<stdio.h>
#include <math.h>
int main()
{
int m,k,i,n=0;
for(m=1;m<=100;m=m+2)
{ k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{ printf("%d is prime\n",m);
n=n+1;
}
if(n%10==0)
printf("\n");

}
return 0;

}