当前位置: 首页 > news >正文

枚举算法

找出从1到n之间的所有的素数:

include

include

using namespace std;

bool isPrime(int num) {
if (num <= 1) return false; // 0和1不是素数
if (num == 2) return true; // 2是素数
if (num % 2 == 0) return false; // 偶数不是素数(除了2)

// 枚举所有可能的因子,范围从3到sqrt(num),步长为2(只检查奇数)
for (int i = 3; i * i <= num; i += 2) {if (num % i == 0) {return false;  // 找到因子,不是素数}
}
return true;  // 没有找到因子,是素数

}

int main() {
int n;
cout << "请输入一个正整数 n: ";
cin >> n;

vector<int> primes;  // 存储所有素数的向量// 枚举算法:遍历1到n之间的所有数
for (int i = 1; i <= n; i++) {if (isPrime(i)) {primes.push_back(i);  // 将素数添加到结果向量中}
}// 输出结果
cout << "1 到 " << n << " 之间的素数有: ";
for (int prime : primes) {cout << prime << " ";
}
cout << endl;return 0;

}
这个就是枚举算法的一道基础题,这个示例展示了枚举算法的基本框架:遍历所有可能性,逐一验证条件。在实际应用中,枚举算法的效率可能需要通过缩小查找的范围,因为枚举是暴力地把所有情况一一列举出来,而往往会有很多种情况,所以说,枚举的应用范围不算太广,不过算是最好理解的一种算法。

http://www.vanclimg.com/news/767.html

相关文章:

  • Linux基本命令和Vim基本操作
  • 带外安全更新深度解析:ATL漏洞与IE防御措施
  • 更多脚本详见csdn
  • Golang基础笔记十五之sync
  • 2025总结
  • 记一个由tinyint类型引发的低级错误
  • 2025最新程序员面试题集合 包括各大厂面试规范,面试问题
  • 浅谈基环树
  • Day 28
  • 2025.7.28
  • 叔向贺贫
  • nest基础学习流程图
  • grabcad
  • 2025.7.28总结 - A
  • 亚马逊发布TEACh数据集训练家用机器人
  • 完全使用TRAE和AI 开发一款完整的应用----第一周
  • CentOS Stream 9上部署FTP应用服务的两种方法(传统安装和docker-compose)
  • SeuratExtend 可视化教程(1):单细胞分析的高颜值绘图指南
  • 机械运动
  • 【2025.7.28】模拟赛T4
  • 深度学习(onnx量化)
  • Redisson
  • uni-app项目跑APP报useStore报错
  • P13493 【MX-X14-T3】心电感应 题解
  • DE_aemmprty 草稿纸合集
  • 题解:P13308 故障
  • mmap提高LCD显示效率
  • 用 Python 构建可扩展的验证码识别系统
  • Java学习Day28
  • 在运维工作中,Dockerfile中常见指令有哪些?