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

题解:AcWing 868 筛质数

【题目来源】

AcWing:868. 筛质数 - AcWing题库

【题目描述】

给定一个正整数 \(n\),请你求出 \(1\sim n\) 中质数的个数。

【输入】

共一行,包含整数 \(n\)

【输出】

共一行,包含一个整数,表示 \(1\sim n\) 中质数的个数。

【输入样例】

8

【输出样例】

4

【解题思路】

image

【算法标签】

《AcWing 868 筛质数》 #数学知识# #质数# #筛质数#

【代码详解】

// 埃式筛法
#include <bits/stdc++.h>
using namespace std;const int N = 1000005;  // 定义筛法上限int primes[N], cnt;     // primes数组存储素数,cnt记录素数个数
bool st[N];             // 标记数组,false表示是素数,true表示不是素数// 埃拉托斯特尼筛法求素数
void get_primes(int n)
{// 从2开始遍历到nfor (int i = 2; i <= n; i++){// 如果当前数未被标记为非素数if (!st[i]){primes[cnt++] = i;  // 将当前数加入素数数组// 标记当前素数的所有倍数为非素数for (int j = i + i; j <= n; j += i)st[j] = true;}}
}int main()
{int n;  // 输入的上限值cin >> n;// 调用筛法函数获取素数get_primes(n);// 输出素数个数cout << cnt << endl;return 0;
}
// 线性筛
#include <bits/stdc++.h>
using namespace std;const int N = 1000005;  // 定义筛法上限int primes[N], cnt;     // primes数组存储素数,cnt记录素数个数
bool st[N];             // 标记数组,false表示是素数,true表示合数// 线性筛法(欧拉筛)求素数
void get_primes(int n)
{// 从2开始遍历到nfor (int i = 2; i <= n; i++){// 如果i未被标记为合数,则i是素数if (!st[i])primes[cnt++] = i;  // 将i加入素数数组// 用当前已找到的素数筛选合数for (int j = 0; primes[j] <= n / i; j++){st[primes[j] * i] = true;  // 标记素数的倍数为合数// 关键优化:当primes[j]是i的最小质因子时终止筛选if (i % primes[j] == 0)break;}}
}int main()
{int n;  // 输入的上限值cin >> n;// 调用线性筛法函数获取素数get_primes(n);// 输出素数个数cout << cnt << endl;return 0;
}

【运行结果】

8
4
http://www.jsqmd.com/news/399395/

相关文章:

  • CH582M的低功耗学习板开发总结与实验心得
  • CVE-2022-25487
  • 智能体设计模式五
  • AI应用架构师实战:中小学教育AI工具的容器化部署
  • 题解:AcWing 867 分解质因数
  • 寒假学习笔记2.15
  • 题解:AcWing 866 试除法判定质数
  • 实验室里的干涉仪总在搞事情,拍出来的条纹图总像抽象派画作。今天咱们用MATLAB给这些条纹来点硬核处理,手把手整点相位计算、解包裹这些骚操作
  • 寒假学习笔记2.14
  • 淘票票9.5+猫眼9.4+票房破5亿,《惊蛰无声》凭什么让观众打出高分? - SFMEDIA
  • 基于java的设计师约稿平台
  • 从 std 到 STL:C++ 标准库到底是什么?(附 Java 类比)
  • 题解:AcWing 861 二分图的最大匹配
  • 解密AI原生应用领域意图识别的工作原理
  • 基于java和Vue的共享单车管理系统 骑行记录 单车监督调度系统
  • 《惊蛰无声》淘票票开分9.5、猫眼9.4,票房破5亿:口碑与市场双向奔赴 - SFMEDIA
  • 基于java的蛋糕烘焙方法经验分享平台
  • 元数据管理如何提升数据科学团队效率?
  • java软件测试项目任务管理系统
  • 数据运营新人必学:从Excel到SQL到BI,大数据工具学习的3个阶段及避坑点
  • 题解:AcWing 860 染色法判定二分图
  • 寒假学习笔记2.13
  • 基于java+Vue的养老院服务预订管理系统的设计与实现
  • 光子晶体仿真在COMSOL里总能把人折腾得又爱又恨。今天聊聊几个实战中容易卡壳的点:拓扑荷对偏振态的操控、三维能带与Q因子计算,顺带提一嘴远场偏振的骚操作
  • java电影评论情感分析系统78j90381
  • java第二课堂教学管理系统 j6l4ub2t
  • java基于数据可视化的大学生创新能力培养平台
  • java校园二手交易平台
  • 股市赚钱学概论:赚钱理之其他
  • SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识) 1.模型...