C++筛选取法实现2~200范围内素数查找
需积分: 25 66 浏览量
更新于2024-07-13
收藏 19.35MB PPT 举报
本资源是一份关于C++编程的PPT课件,主要讲解如何使用筛选法在C++中求出2~200之间的所有素数。筛选法是一种经典算法,用于找出特定范围内(如2~200)的所有质数。算法的基本步骤如下:
1. 初始化:创建一个从2到200的整数数组,并将其所有元素初始化为1,表示这些数字都可能是素数。
2. 筛选过程:从2开始,依次检查每个数i(从2到√200),对于每个i,如果它是素数,则将它的所有倍数(即i的2倍、3倍、4倍...直到200除以i余数为0的倍数)标记为非素数,将它们的数组值设为0。这是因为如果一个数有因子小于或等于它的平方根,那么它一定有另一个因子大于它的平方根,所以不需要检查大于√200的倍数。
3. 输出结果:遍历整个数组,将那些值仍为1(即未被标记为0)的数输出,这些就是素数。
C++程序示例可能如下:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 判断是否为素数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
// 筛选素数
void sieveOfEratosthenes(int n) {
vector<bool> primes(n + 1, true); // 假设所有数都是素数
primes[0] = primes[1] = false; // 0和1不是素数
for (int i = 2; i * i <= n; ++i) {
if (primes[i]) {
for (int j = i * i; j <= n; j += i) {
primes[j] = false;
}
}
}
// 输出素数
for (int i = 2; i <= n; ++i) {
if (primes[i]) {
cout << i << " ";
}
}
}
int main() {
sieveOfEratosthenes(200);
return 0;
}
```
这份课件涵盖了C++语言的介绍,包括其发展历史、特点以及C++在程序设计中的应用。C++作为结构化语言,具有灵活性、高效性和可移植性,但同时也存在语法不严密、调试相对困难的问题。通过学习筛选法,学生可以理解如何利用C++实现高效的算法,提高编程技能。
2012-10-09 上传
2020-04-24 上传
2023-05-30 上传
2023-08-13 上传
2023-11-13 上传
2023-11-20 上传
2023-05-25 上传
2023-05-23 上传
![](https://profile-avatar.csdnimg.cn/a23ac3edc68a4b33b65fe4911179c450_weixin_42188533.jpg!1)
魔屋
- 粉丝: 23
- 资源: 2万+
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码