埃拉托色尼筛选法

// From < C Programming FAQs > 
找出所有小于10000的素数,算法原理请自行google 埃拉托色尼筛法

程序代码:

#define N 10000
#include<stdio.h>
int main()
{
     int i,j,a[N];
     for(i=2;i<N;i++) a[i]=1;  // 将数组中的值全部设为1
     for(i=2;i<N;i++)
         if(a[i])
             for(j=i;i*j<N;j++)   a[i*j]=0;  // 将索引为2,3,5,的倍数的数组元素设为0,因为这些数不是素数
     for(i=2;i<N;i++)
         if(a[i]) printf("4%d\n",i);  // 遍历打印出找到的素数
    printf("\n");
     return 0;
}

你可能感兴趣的:(埃拉托色尼筛选法)