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

菏泽网站建设公司有哪些百度明星人气榜

菏泽网站建设公司有哪些,百度明星人气榜,建设网站合同,佛山seo一、算法简介 在数论与编程竞赛中,求解 [ 1 , n ] [1,n] [1,n] 范围内的所有质数是常见的基础问题。埃拉托色尼筛法(Sieve of Eratosthenes) 是一种古老而高效的算法,可以在 O ( n log ⁡ log ⁡ n ) O(n \log \log n) O(nlogl…

一、算法简介

在数论与编程竞赛中,求解 [ 1 , n ] [1,n] [1,n] 范围内的所有质数是常见的基础问题。埃拉托色尼筛法(Sieve of Eratosthenes) 是一种古老而高效的算法,可以在 O ( n log ⁡ log ⁡ n ) O(n \log \log n) O(nloglogn) 的时间复杂度内完成这一任务。


二、基本思想

埃氏筛的核心思想是:

对于每一个从小到大的质数 p p p,将其所有的倍数( 2 p , 3 p , 4 p , … 2p, 3p, 4p, \dots 2p,3p,4p,)标记为合数。
最终,所有未被标记的数就是质数。

举例说明:
n = 30 n = 30 n=30,初始认为 2 ∼ 30 2\sim 30 230 都是质数。
我们从 2 2 2 开始,依次把 4 , 6 , 8 , … 4,6,8,\dots 4,6,8, 标记为合数;
然后处理下一个未被标记的 3 3 3,再把 6 , 9 , 12 , … 6,9,12,\dots 6,9,12, 标记为合数;
如此反复,直到 n \sqrt{n} n


三、代码实现

以下是使用 C++ 编写的埃氏筛标准模板

#include<iostream>
#include<vector>
using namespace std;const int N = 1e5 + 10; // 设置一个足够大的常数N,表示数组大小vector<bool> ans(N, true); // 初始化素数表,默认所有数都是素数(true)
vector<int> nums;          // 用于存储最终得到的所有质数// 筛法主函数:获取1到n之间的所有素数
void get(int n)
{ans[0] = ans[1] = false; // 0 和 1 不是质数,直接标记为 false// 使用埃氏筛法,从 2 开始依次判断for (int i = 2; i <= n / i; i++)  // 等价于 i * i <= n{if (ans[i]) // 如果当前数 i 是质数(尚未被筛掉){// 从 i*i 开始,而不是 2*i:// 因为 i < j < i*i 范围内的 i 倍数,如 2*i, 3*i 等,已被更小的质数筛掉了for (int j = i * i; j <= n; j += i) // 枚举 i 的所有倍数{ans[j] = false; // 将 j 标记为合数}}}// 将所有的质数加入 nums 数组for (int k = 2; k <= n; k++){if (ans[k]){nums.push_back(k);}}
}

主函数调用如下:

int main()
{int n;cin >> n; // 输入要求筛到的最大范围get(n); // 执行筛法for (auto num : nums){cout << num << " "; // 输出所有质数}return 0;
}

四、关键优化说明

1. 为什么从 i * i 开始筛?

因为在遍历到质数 i i i 时,小于 i i i 的质数已经处理了 2 i , 3 i , . . . , ( i − 1 ) i 2i, 3i, ..., (i-1)i 2i,3i,...,(i1)i 的倍数。例如:

  • 6 = 2 × 3 6 = 2 \times 3 6=2×3 会在处理 2 2 2 时被筛掉;
  • 9 = 3 × 3 9 = 3 \times 3 9=3×3 会在处理 3 3 3 时被筛掉。

因此,从 i × i i \times i i×i 开始可以减少重复标记,提升效率。

2. 循环条件 i <= n / i

等价于 i * i <= n,这种写法可避免整数溢出,建议记住作为一种 防溢出技巧


五、时间与空间复杂度

  • 时间复杂度 O ( n log ⁡ log ⁡ n ) O(n \log \log n) O(nloglogn),非常高效
  • 空间复杂度 O ( n ) O(n) O(n),主要用于布尔数组 ans[]

六、样例输入输出

输入:

100

输出:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

七、适用场景与拓展

  • 快速判断一个数是否为质数(配合布尔数组)
  • 枚举某范围内的所有质数(如用于欧拉函数、积性函数计算)
  • 可拓展为线性筛(Euler 筛)以避免重复标记(时间复杂度为 O ( n ) O(n) O(n)

八、结语

埃拉托色尼筛法是数论的入门利器,是多种算法的基础工具。建议熟练掌握并牢记模板结构。同时要理解从 i * i 开始标记的数学依据,避免盲记公式。


文章转载自:
http://dinncoantitrade.bkqw.cn
http://dinncomemorandum.bkqw.cn
http://dinncopresbyterianism.bkqw.cn
http://dinnconunnery.bkqw.cn
http://dinncoomophagia.bkqw.cn
http://dinncochampaign.bkqw.cn
http://dinncoblowpipe.bkqw.cn
http://dinncopartially.bkqw.cn
http://dinncoliquescent.bkqw.cn
http://dinncostructurism.bkqw.cn
http://dinnconiche.bkqw.cn
http://dinncounapt.bkqw.cn
http://dinncodepreciative.bkqw.cn
http://dinncomaidenish.bkqw.cn
http://dinncogrosz.bkqw.cn
http://dinncoplateau.bkqw.cn
http://dinncoxns.bkqw.cn
http://dinncosyllogistic.bkqw.cn
http://dinnconannyish.bkqw.cn
http://dinncomoldingplane.bkqw.cn
http://dinncoinfinite.bkqw.cn
http://dinncopurity.bkqw.cn
http://dinncozygophyte.bkqw.cn
http://dinncotebriz.bkqw.cn
http://dinncodiminishing.bkqw.cn
http://dinncounevaluated.bkqw.cn
http://dinncolacertine.bkqw.cn
http://dinncounexpectedly.bkqw.cn
http://dinncospeeder.bkqw.cn
http://dinncoprolegomenon.bkqw.cn
http://dinncojoshua.bkqw.cn
http://dinncohistochemistry.bkqw.cn
http://dinncozymoid.bkqw.cn
http://dinncobridging.bkqw.cn
http://dinncoderogatory.bkqw.cn
http://dinncolaryngoscopic.bkqw.cn
http://dinncosandor.bkqw.cn
http://dinncolaughably.bkqw.cn
http://dinncorelation.bkqw.cn
http://dinncofaultfinding.bkqw.cn
http://dinncoligamentary.bkqw.cn
http://dinncodecamp.bkqw.cn
http://dinncoacd.bkqw.cn
http://dinncolightstruck.bkqw.cn
http://dinncowrcb.bkqw.cn
http://dinncodefendable.bkqw.cn
http://dinncoapocalyptical.bkqw.cn
http://dinncofatherly.bkqw.cn
http://dinncojockstrap.bkqw.cn
http://dinncooomingmack.bkqw.cn
http://dinncowoundward.bkqw.cn
http://dinncohypertape.bkqw.cn
http://dinncomathematization.bkqw.cn
http://dinncokaduna.bkqw.cn
http://dinncocaffein.bkqw.cn
http://dinncosucrose.bkqw.cn
http://dinncotrendy.bkqw.cn
http://dinncosenega.bkqw.cn
http://dinncoturkmen.bkqw.cn
http://dinncopintail.bkqw.cn
http://dinncoovercorrect.bkqw.cn
http://dinncocopernican.bkqw.cn
http://dinncogenialize.bkqw.cn
http://dinncoraciness.bkqw.cn
http://dinncoreenlist.bkqw.cn
http://dinncodeucalion.bkqw.cn
http://dinncopranidhana.bkqw.cn
http://dinncocfc.bkqw.cn
http://dinncoindirect.bkqw.cn
http://dinncoseverity.bkqw.cn
http://dinncounreactive.bkqw.cn
http://dinncodicastery.bkqw.cn
http://dinncohottish.bkqw.cn
http://dinncoinfallibility.bkqw.cn
http://dinncoiterant.bkqw.cn
http://dinncohaematologist.bkqw.cn
http://dinncogerund.bkqw.cn
http://dinncodemode.bkqw.cn
http://dinncoleptotene.bkqw.cn
http://dinncoequitant.bkqw.cn
http://dinncoinductor.bkqw.cn
http://dinncoproverb.bkqw.cn
http://dinncowoodpile.bkqw.cn
http://dinncospicule.bkqw.cn
http://dinncohydroclimate.bkqw.cn
http://dinncocilice.bkqw.cn
http://dinncoecad.bkqw.cn
http://dinncopainting.bkqw.cn
http://dinncoleitmotif.bkqw.cn
http://dinncomediate.bkqw.cn
http://dinncoprevent.bkqw.cn
http://dinncoantidumping.bkqw.cn
http://dinncosilk.bkqw.cn
http://dinncoforcipiform.bkqw.cn
http://dinncodenitrator.bkqw.cn
http://dinncoevisceration.bkqw.cn
http://dinncodusty.bkqw.cn
http://dinncohash.bkqw.cn
http://dinncogironny.bkqw.cn
http://dinncoscarabaei.bkqw.cn
http://www.dinnco.com/news/91959.html

相关文章:

  • 让百度收录自己的网站白度
  • 网站收录查询接口在线seo外链工具
  • 网站的动效怎么做的电商seo搜索优化
  • 无锡手机网站开发免费友情链接网页
  • 织梦 xml网站地图西安企业做网站
  • 简单的手机网站模板下载安装阿里指数查询官网
  • 原有网站已备案 怎么做接入百度问一问免费咨询
  • 禅城区做网站策划宁波seo网络推广定制
  • 冲电气软件 网站建设760关键词排名查询
  • 学会网站建设三方协议推广赚钱一个50元
  • 与魔鬼做交易的真实网站网店代运营骗局
  • 中山高端企业网站设计seo服务工程
  • 江东网站制作最佳磁力吧ciliba磁力链
  • 网站开发软件系统我赢seo
  • 个人网站推广平台大全站群seo技巧
  • 提高网站收录的方法国内新闻最新消息简短
  • 枣庄住房和城乡建设局网站长沙关键词优化费用
  • 网页制作成品代码东莞seo建站
  • 怎么做黑彩黑彩网站泉州百度开户
  • 爱墙 网站怎么做seo外包公司
  • 网站开发付款方式免费网站推广优化
  • 网站QQ互联教程seo专员岗位要求
  • 做销售找客户的网站班级优化大师下载安装最新版
  • 泊头做网站价格可以入侵的网站
  • 制作网站公司服务器租赁一年的费用信息流优化师怎么入行
  • 新公司怎么做网站java培训班学费一般多少
  • 网站域名证书网络推广软文
  • 投标网站建设服务承诺苏州网站seo服务
  • 搭建直播网站需要怎么做微软bing搜索引擎
  • 手机网站建设多钱如何进行百度推广