您的当前位置:首页正文

筛选法求素数

2023-06-27 来源:步旅网


数组是构造类型数据,指一组同类型数据组成的序列,用一个统一的数组名标识这一组数据。用下标来只是数组中元素的序号。C语言中数组下标从0开始,定义方位为:类型标示符 数组名[元素个数]。

求素数的方法很多,本来采用经典算法——eratasthenes筛选法,思路为:

1、取最小的数2,并声明它是素数,同时筛去它及它的倍数。

2、取未筛去数中最小的数,并声明它是素数,同时筛去它及它的倍数。

3、重复步骤2至筛中无数,得到所有的素数。

#include \"stdio.h\"

/* 范围 */

#define M 200

/* 奇数的个数 */

#define N ((M+1)/2)

void main(void)

{

int i,j,a[N];

a[0] = 2;

for(i=1;i<(N-1);i++) /* 初始数组实现第一步筛选 */

a[i] = 2*i+1;

for(i=1;i<(N-1);i++) /* 第二部筛选 */

if(a[i]!=0)

for(j=i+1;jif(a[j]%a[i]==0) /* 倍数时置零晒去 */

a[j]=0;

printf(\"\\nThe primer are [2-%d]:\\n\

for(i=0,j=0;i{

if(a[i]!=0)

{

printf(\"%5d\

if((++j)%10==0) /* 十个数换行 */

printf(\"\\n\");

}

}

getch();

}

运行结果:

因篇幅问题不能全部显示,请点此查看更多更全内容