求素数--有点错误
#include<stdio.h>#include<math.h>
main()
{
int i,j,k,a[100],m;
for(i=2;i<=100;i++)
{ m=i/2;///////////////////////////////////////为什么这里改为m=sqrt(i)输不出结果来?
for(j=2;j<=m;j++)
if(i%j==0)
break;
if(j>m) a[k++]=i;
}
for(i=0;i<=k;i++)
printf("%5d",a[i]);
}
搜索更多相关的解决方案:
素数
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
int main()
{
int i=1,m,n;
printf("the prime are 2 ");
for(m=3;m<=100;m+=2)
{n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0) break;
if(i>n)
printf("%d ",m);
}
}
打印0--100内的素数
你的用m=i/2是不行的
----------------解决方案--------------------------------------------------------
a[k++]
不能这样
----------------解决方案--------------------------------------------------------
#include<stdio.h>#include<math.h>main(){ int i,j,k=0,a[100],m;//没初始化你就a[k++]不可以吧! for(i=2;i<=100;i++) { m=sqrt(i); for(j=2;j<=m;j++) if(i%j==0) break; if(j>m)a[k++]=i; }for(i=0;i<=k;i++)printf("%5d",a);}
----------------解决方案--------------------------------------------------------