数组_例题:用筛选法求1-100之间的素数

# 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

----------------

*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值