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

学做网站去哪学内容营销的定义

学做网站去哪学,内容营销的定义,wordpress 减少head,网站构建的过程筛质数 题目传送门 题目链接 一、题目描述 给定一个正整数 n,请你求出 1∼n 中质数的个数。 输入格式 共一行,包含整数 n。 输出格式 共一行,包含一个整数,表示 1∼n 中质数的个数。 数据范围 1 ≤ n ≤ 10⁶ 输入样例&am…

筛质数

题目传送门

题目链接

一、题目描述

给定一个正整数 n,请你求出 1∼n 中质数的个数。

输入格式
共一行,包含整数 n

输出格式
共一行,包含一个整数,表示 1∼n 中质数的个数。

数据范围
1 ≤ n ≤ 10⁶

输入样例

8

输出样例

4

二、题目分析

我们需要统计从1到n之间的所有质数的数量。质数是指大于1的自然数,除了1和它本身外没有其他约数。

三、解题思路

这道题有两种常见的筛法可以高效解决:

  1. 埃拉托斯特尼筛法(埃氏筛):从2开始,将每个质数的倍数都标记为合数
  2. 欧拉筛(线性筛):每个合数只会被它的最小质因数筛掉,时间复杂度更低

四、算法讲解

1. 埃氏筛法

  • 初始化一个布尔数组st,表示数字是否被筛掉
  • 从2开始遍历:
    • 如果当前数未被筛掉,则它是质数,计数器加1
    • 然后将其所有倍数标记为合数
  • 时间复杂度:O(n log log n)

例子:n=8

  • 2是质数,筛掉4,6,8
  • 3是质数,筛掉6(已被筛过)
  • 4被筛过
  • 5是质数,筛掉10(超过n)
  • 6被筛过
  • 7是质数
  • 8被筛过
    最终质数:2,3,5,7共4个

2. 欧拉筛法

  • 维护一个质数数组prime
  • 同样从2开始遍历:
    • 如果当前数未被筛掉,加入质数数组
    • 对于每个质数prime[j],筛掉i*prime[j]
    • i能被prime[j]整除时停止,保证每个数只被最小质因数筛掉
  • 时间复杂度:O(n)

例子:n=8

  • i=2: 加入prime, 筛4
  • i=3: 加入prime, 筛6,9(9>n停止)
  • i=4: 筛8(4%2==0停止)
  • i=5: 加入prime
  • i=6: 筛12(>n)
  • i=7: 加入prime
  • i=8: 筛16(>n)
    同样得到4个质数

五、代码实现

#include <bits/stdc++.h>
using namespace std;
// #define int long long
const int N = 1e6 + 10;
int n, cnt;
int prime[N];
bool st[N];// 埃氏筛
void aishi()
{for (int i = 2; i <= n; i++){if (!st[i]){prime[cnt++] = i;st[i] = true;// 将 i 的倍数全部筛掉for (int j = i * 2; j <= n; j += i){st[j] = true;}}}
}// 欧拉筛
void oula()
{for (int i = 2; i <= n; i++){if (!st[i]){prime[cnt++] = i;}for (int j = 0; prime[j] * i <= n; j++){st[i * prime[j]] = true;if (i % prime[j] == 0)  // 被最小的指数筛break;}}
}void solve()
{cin >> n;// aishi();oula();cout << cnt << "\n";
}
signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);solve();return 0;
}

六、重点细节

  1. 数组大小N要开到10⁶+10,因为n最大是10⁶
  2. 初始化st数组默认全为false,表示未被筛掉
  3. 欧拉筛的关键:当i % prime[j] == 0时break,保证线性复杂度
  4. 边界处理:循环条件prime[j] * i <= n防止数组越界

七、复杂度分析

  • 埃氏筛:O(n log log n)
    外层循环n次,内层循环次数随着i增大而减少
  • 欧拉筛:O(n)
    每个合数只被筛一次,严格线性

八、总结

本题是经典的质数筛法问题,两种方法各有特点:

  • 埃氏筛实现简单,适合初学者理解
  • 欧拉筛效率更高,适合大数据量
    根据题目数据范围n≤10⁶,两种方法都能通过,但欧拉筛更优

文章转载自:

http://KFlgG9ww.fygLr.cn
http://8ALUDijS.fygLr.cn
http://dQlBzv1C.fygLr.cn
http://Rcqxb0nn.fygLr.cn
http://e0hR52hC.fygLr.cn
http://w0JONEAC.fygLr.cn
http://VViQn0jY.fygLr.cn
http://dZ0bubTa.fygLr.cn
http://Xo9T71P6.fygLr.cn
http://deBkBYq4.fygLr.cn
http://bSPdRj4m.fygLr.cn
http://keD9Bc08.fygLr.cn
http://1MSmHa84.fygLr.cn
http://m6il7489.fygLr.cn
http://E3ICQ4WJ.fygLr.cn
http://byMfhNS6.fygLr.cn
http://NVCVilMs.fygLr.cn
http://gNud3pg0.fygLr.cn
http://h5YqqZtz.fygLr.cn
http://WcUrCIki.fygLr.cn
http://KWQi7RBH.fygLr.cn
http://t6kRJgrY.fygLr.cn
http://f08vO35F.fygLr.cn
http://dno0or5n.fygLr.cn
http://3e34Y71z.fygLr.cn
http://DYBBrLsx.fygLr.cn
http://vENwS3Df.fygLr.cn
http://tFDBeaas.fygLr.cn
http://05LPXV0K.fygLr.cn
http://CCnjvnZU.fygLr.cn
http://www.dtcms.com/wzjs/625319.html

相关文章:

  • 用什么语言来做网站wordpress好还是织梦好
  • 网站登录记录怎么删除如何将网站生成二维码
  • 做的网站怎么打开是白板免费h5场景制作软件
  • 做棋牌网站建设哪家好好的搜索引擎推荐
  • 网页制作教程网站一般的电脑培训班要多少钱
  • 国外的域名注册网站电脑html如何转wordpress
  • 网站建设的上市公司深圳网站排名怎么做
  • 网站建设中 提示黄骅市旅游景点有哪些
  • 网站优化新闻开发游戏用什么编程软件
  • 深圳做高端网站建设公司济南网站推广
  • 做网站 多少钱手机宣传网站
  • 郑州做网站推广的公司网站建设用图片
  • 淄博企业高端网站建设电商代运营公司排行榜
  • 网站上的支付接口怎么做注册网站的免费网址
  • 网站如何做营销网络服务优势
  • 旅行社网站建设规划电脑手机一体网站
  • 旅游网站栏目建设网站排名标准
  • 食品网站的网页设计宁波专业网站制作设计
  • 佛山自助建站系统响应式网站开发技术
  • 企业网站要更新文章吗wordpress justnews
  • 建设企业网站需注意什么大型网站有哪些用php做的
  • 高校二级网站建设要求自助建站和网站开发的利弊
  • 做网站页面的软件记事本做网站背景色怎么弄
  • 通州设计网站建设广西房管局官网
  • 如何让自己做的网页有网站国内ui设计培训
  • 做百度企业网站有什么好处wordpress图片管理
  • 经验丰富的网站制作公司青岛栈桥门票多少钱一张
  • 哪个网站可以接工程做网站的相对路径
  • 企业产品微网站收费吗wordpress 表介绍
  • 网页和网站区别开一个淘宝店铺流程