埃筛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;
			}
		}
	}
}

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

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

第六行:标记合数。

相关推荐
玄同7658 分钟前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding
Word码16 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
Yorlen_Zhang18 分钟前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
lxl130720 分钟前
C++算法(1)双指针
开发语言·c++
淀粉肠kk30 分钟前
C++11列表初始化:{}的革命性进化
c++
不绝19131 分钟前
C#进阶:预处理指令/反射,Gettype,Typeof/关键类
开发语言·c#
无小道37 分钟前
Qt-qrc机制简单介绍
开发语言·qt
zhooyu43 分钟前
C++和OpenGL手搓3D游戏编程(20160207进展和效果)
开发语言·c++·游戏·3d·opengl
HAPPY酷1 小时前
C++ 和 Python 的“容器”对决:从万金油到核武器
开发语言·c++·python
大鹏说大话1 小时前
告别 MSBuild 脚本混乱:用 C# 和 Nuke 构建清晰、可维护的现代化构建系统
开发语言·c#