C语言---利用数组构造小于25的素数表

    下文中有很多的i,在这里说明i只在其对应的大括号里起作用,不同大括号里的i不同。
#include <STDIO.H>
int main(int argc, char **argv)
{
		const int maxNumber = 25;		//定义一个常量
		int isPrime[maxNumber];		//定义一个数组
		int x;
		int i;

		for (i=0;i<maxNumber;i++)		//利用for遍历数组,初始化数组每一位都为1
		{	isPrime[i]=1;		//表示是素数时,下标对应的元素为1
		}

		for( x=2;  x<maxNumber;x++)	//从第一个素数2开始(从1开始1的任何倍数没有意义),x<maxNumber表示maxNumber以内的数。
		{
		if ( isPrime[x])			//从2开始一直到maxNumber-1执行下面的for循环
		{for(i=2;i*x<maxNumber;i++){	//x的i(从2开始×)倍直到<maxNumber的数都不是素数
				isPrime[i*x]=0;	//i*x不是素数,因此这时候使得数组对应下标为i*x的元素变为0
		}
		}} 

		for (i=2;i<maxNumber;i++)		//遍历数组,从i=2即第一个素数位置开始
		{if (isPrime[i])			//上文已经使得不是素数的数组对应位置的元素变为0,
		{printf("%d\t",i);			//这时候通过if语句挑选出isPrime[i]=1的i,然后打印。
		}
		}
		printf("\n");
		return 0;

}

以上就是我对数组构造素数表的理解。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值