# include <stdio.h>
# define N 100
int main(void)
{
int a[N], b[N]; //定义两个数组
int i, j, count = 0;
a[0] = 1; //将1筛除
for(i=1; i<N; i++)
a[i] = 0; //初始化所有数
/*若筛中最小数的标志为0,则基为素数,将其存入素数数组b,素数个数+1*/
for(j=2; j<=N; j++)
if(a[j-1] == 0) //没有排除的数值为还是0
{
b[count] = j;
for(i=j; i<=N; i=i+j)
a[i-1] = 1; //将排除的数赋值为1(分别是2的倍数、3的倍数..到10的倍数的号)
count++;
}
for(i=1; i<=count; i++)
{
printf("%-5d",b[i-1]);
if(i%5==0)
printf("\n");
}
return 0;
}/*执行结果为:
----------------
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97----------------
*/
数组_例题:用筛选法求1-100之间的素数
最新推荐文章于 2024-01-12 01:36:20 发布