埃氏筛选

结果


代码

#include <stdio.h>
int prime[100000000], pNum = 0;  // prime存放素数,pNum为素数个数
int p[100000000] = {0};     // 标记,素数false,合数true

int SmallPrimeList(int n,int *plist, int *len)
{
    for (int i = 2; i <= n; i++)
    {
        if (p[i] == 0)      // 如果i是素数
        {
            prime[pNum++] = i;  // 记录i
            for (int j = i + i; j <= n; j += i)     // 筛去所有i的倍数
                p[j] = 1;
        }
    }
return 1;
}
int main(){
        int n;

        printf("shu ru fan wei\n");
        scanf("%d",&n);
        SmallPrimeLis(n,prime,&pNum);
        for(int i = 0;i <pNum;i++){
                printf("%d ",prime[i]);

        }
}
posted @ 2022-06-09 14:28  20191301  阅读(26)  评论(0编辑  收藏  举报