判断是否为素数

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

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

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;
}
相关推荐
BothSavage28 分钟前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn30 分钟前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽2 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
郝学胜_神的一滴2 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
先吃饱再说18 小时前
判断回文字符串,从一行代码到双指针优化
算法
见过夏天18 小时前
C++ 基础入门完全指南
c++
黄敬峰21 小时前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术1 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六1 天前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程