0
点赞
收藏
分享

微信扫一扫

3月6日学习日志:C语言 Eratasthene筛选法 求素数

代码小姐 2022-03-11 阅读 50

Eratasthene筛选法

以打印200以内的素数为例

#include<stdio.h>
#include<math.h>
#define SIZE 200
int main(void)
{
	//定义数组时要多一个  否则会导致数组下标溢出
	int prime[SIZE+1] = { 0 };
	//外层循环调用sqrt 且从2开始 <=
	for (int  i = 2; i <= sqrt(SIZE); i++)
	{
		if (!prime[i])
		{
			//内层循环从i*i开始 <= j=j+i结束
			for (int j = i * i; j <=SIZE; j += i)
			{
				prime[j] = 1;
			}
		}
	}
	for (int i = 2; i <= SIZE; i++)
	{
		if (!prime[i])
		{
			printf("%d\t", i);
		}
	}
	return 0;
}
举报

相关推荐

0 条评论