当前位置: 代码迷 >> C语言 >> 求素数--有点错误
  详细解决方案

求素数--有点错误

热度:125   发布时间:2007-11-24 22:26:30.0
求素数--有点错误
#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);}
----------------解决方案--------------------------------------------------------
  相关解决方案