不大于N的所有素数

不大于N的所有素数_第1张图片

算法如下:

#include
#include
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)
        printf("%d ",L[p]);
    printf("\n");
}
void main()
{
    Sieve(25);
}

 

你可能感兴趣的:(不大于N的所有素数)