判断是否为素数

埃拉托斯特尼筛法是一种高效的找出范围内所有素数的方法。

基本思想是:标记所有数 的倍数为非素数 ,剩下 的就是素数。

cpp 复制代码
// 判断是否为素数
vector<bool> getIsPrime(int n) {
	// 判断 找出 0 到 n 的所有素数
	vector<bool> isPrime(n + 1, true);
	// 0 和1 一定不适素数
	isPrime[0] = isPrime[1] = false;
	// 跳过偶数 偶数一定不是素数
	// 这里只是 i++ 要确保 i*i 的范围不超过n
	for (int i = 2; i * i <= n; i++)
	{
		 // 如果当前为素数 那么它的倍数,
		 // 以及对自身的加和一定不是素数
		// 2 4 6 8 16
		if (isPrime[i]) {
			for (int j = i*i; j <= n; j += i)
			{
				// 是修改 j 的值
				isPrime[j] = false;
			}
		}
	}
	return isPrime;
}
相关推荐
Navigator_Z13 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
CCblandy14 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
mmmmath_314 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
xier_ran14 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
YangYang9YangYan15 小时前
2027供应链计划校招:数学与应用数学专业如何把预测模型讲成业务决策?
人工智能·sql·算法
jsjzsl215 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
程序员清风15 小时前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
梦帮科技15 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
jimy116 小时前
c++的 Type Traits (一)
开发语言·c++