埃筛C++写法

埃筛的作用是找素数(质数),以质数的倍数一定是合数为重心思路。

比如说 2 是质数,但 2 的倍数(除了自己)都是合数。

3 是质数,但 3 的倍数(除了自己)都是合数。
我们针对这个特性,可以用打标法实现。p[x]表示x是否为质数。

cpp 复制代码
void Prime() {
	memset(P, true, sizeof (P));
	for (int i = 2; i <= MAX; i++) {
		if (P[i]) {
			for (int k = i * 2; k <= MAX; k += i) {
				P[k] = false;
			}
		}
	}
}

第二行:起初大家都是质数,后面慢慢删除。

第四行:只要这个数是质数,他的倍数就都是合数(虽然合数的倍数也是合数,但是他已经被它们的公约数标记了)。

第六行:标记合数。

相关推荐
梦想平凡8 小时前
情怀源代码工程实践(加长版 1/3):确定性内核、事件回放与最小可运行骨架
开发语言·javascript·ecmascript
m0_748248028 小时前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
笑我归无处8 小时前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm
02苏_8 小时前
秋招Java面
java·开发语言
ytttr8738 小时前
64QAM信号的数字预失真处理(MATLAB实现)
开发语言·matlab
Nebula_g8 小时前
C语言应用实例:硕鼠游戏,田忌赛马,搬桌子,活动选择(贪心算法)
c语言·开发语言·学习·算法·游戏·贪心算法·初学者
爱吃甜品的糯米团子8 小时前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript
QT 小鲜肉9 小时前
【Git、GitHub、Gitee】按功能分类汇总Git常用命令详解(超详细)
c语言·网络·c++·git·qt·gitee·github
派大星爱吃猫9 小时前
C++中的inline函数(内联函数)
c++·inline·内联函数
清风wxy9 小时前
Duilib_CEF桌面软件实战之Duilib编译与第一个界面程序
c++·笔记·ui·mfc