埃筛C++写法

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

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

3 是质数,但 3 的倍数(除了自己)都是合数。
我们针对这个特性,可以用打标法实现。px表示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;
			}
		}
	}
}

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

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

第六行:标记合数。

相关推荐
点心的游戏开发世界6 小时前
GDScript 入门笔记(十一):Lambda 与匿名函数
开发语言·笔记·游戏引擎·godot
RuoZoe7 小时前
从 2026 年 3 月 1 日开源,到 26.10.9:Jalium UI 半年时间到底走了多远?
c语言·c++
事圆则缓8 小时前
Kotlin 协程完全指南
开发语言·kotlin
鱼子星_8 小时前
【C++】继承和多态(上)
c++·笔记
我爱写代码i8 小时前
BeLink - 支持生成多种URL 缩短网址PHP源码
开发语言·php·短网址php源码
Java后端的Ai之路8 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
统计学小王子9 小时前
数学建模国赛倒计时4天——《统计模型精讲(混合效应模型R语言实现)》
开发语言·数学建模·r语言
知无不研9 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while
郝学胜-神的一滴9 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
码匠许师傅10 小时前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式