C++筛选取法实现2~200范围内素数查找
需积分: 25 196 浏览量
更新于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++实现高效的算法,提高编程技能。
2020-04-24 上传
2012-10-09 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
魔屋
- 粉丝: 25
- 资源: 2万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜