不大于N的所有素数

算法如下:

#include<stdio.h>
#include<math.h>
void Sieve(int n)
{
    int p,j,i;
    int A[n+1],L[n+1];
    for(p=2;p<=n;p++)
        A[p]=p;
    for(p=2;p<=sqrt(n);p++)
    {
        if(A[p]!=0)
        {
            j=p*p;
            while(j<n)
            {
                A[j]=0;
                j=j+p;
            }
        }
    }
    i=0;
    for(p=2;p<=n;p++)
    {
        if(A[p]!=0)
        {
            L[i]=A[p];
            i++;
        }
    }
    for(p=0;p<i;p++)
        printf("%d ",L[p]);
    printf("\n");
}
void main()
{
    Sieve(25);
}

 

posted @ 2014-06-16 14:26  Jessica程序猿  阅读(478)  评论(0编辑  收藏  举报