首页 > 编程语言 >埃氏筛+欧拉筛 (c++)

埃氏筛+欧拉筛 (c++)

时间:2024-06-17 21:10:43浏览次数:28  
标签:埃氏 isp 个数 c++ 素数 倍数 欧拉

求出从2到n的素数

埃氏筛

  • 方法:筛2的倍数,3的倍数,4的倍数......
  • 时间复杂度:O(n·loglogn)
  • 缺点:一个数筛了多次,比如6会被2筛,被3筛,被6筛,浪费时间
  • 下面的代码中,f是是否是素数的标记数组,N是要筛的个数
f[1]=1;
for (int i=2; i*i<=N; i++) 
    if (f[i]==0){
        for (int j=i+i; j<=N; j+=i)
            f[j]=1;
}

欧拉筛(线性筛)

  • 方法:每个数只被它最小的素因子筛一次
  • 时间复杂度:O(n)
  • 下面的代码中,ISP是是否为素数标记,p为存放素数的数组,p_c为当前素数个数,n为要筛的数的个数(第1行使用memset要写#include<cstring>#include<string.h>
    memset(isp,true,sizeof isp);
    isp[1]=false;
    for(int i=2;i<=n;i++){
        if(isp[i])
            p[++p_c]=i;
        for(int j=1;j<=p_c && i*p[j]<=n;j++){
            isp[i*p[j]]=false;
            if(i%p[j]==0)
                break;
        }
    }

标签:埃氏,isp,个数,c++,素数,倍数,欧拉
From: https://www.cnblogs.com/algorithm-hu/p/18253206

相关文章

  • c++万能头文件
    一、问题出现c/C++使用首先就是要开头头文件的引用,没有写头文件的程序基本都不会成功运行得到想要的结果,因为每个程序基本都避免不了一定的输入与输出,而输入与输出却在头文件#include/#include<stdio.h>中大量的库函数扑面而来,随之产生了一个很令人头疼的问题,每一种类型的函......
  • C++11智能指针 unique_ptr、shared_ptr、weak_ptr与定制删除器
    目录智能指针场景引入-为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针......
  • UE4 C++ AI实现跳跃(上下平台)
    NavLinkProxyPointLink:点对点,不提供可处理的事件SmartLink:提供可处理的事件,当AI到达Link位置时,可以接受函数通过ReceiveSmartLinkReached事件进行绑定函数操作实现简单的跳跃通过接口,定义函数,在AI基类中进行实现。主要通过两个函数实现UGameplayStatics::SuggestPro......
  • 跟我从零开始学C++(C++代码基础)
    引言小伙伴们是不是都等不及了,来啦来啦它来啦,在经历过前边那么多乱七八糟的但又重要的知识后,终于迎来了有关C++代码的这一步,真是不容易呀,小伙伴们,本章小雨会带着大家去从下载软件到一些简单的基础知识,放轻松~不过本章全程干货一点都不能错过呀,而且附带的Visualstudio的详......
  • 跟我从零开始学C++(C++代码基础)3
    引言小伙伴们大家好呀,又到了每日学习的时候了,今天小杨同学给大家带来了新的知识点哟,大家准备好了么,昨天学习的任务有没有消化好呢,昨天的课后练习怎么样了呢,有没有费了一番功夫弄出来呢。没有把基础打好的小伙伴们千万不要着急呀,毕竟根基不牢是要出大事情的,小伙伴们加油呀,跟......
  • C++类虚函数实现多态求长方体和圆柱体的体积
    #include<iostream>usingnamespacestd;#definePI3.14classContainer{ public: Container(doubleh){ height=h;//简单的方法初始化h } virtualdoublegetvolumn()=0;//纯虚函数 protected: doubleheight;};classCube:publicC......
  • 2024华为OD机试真题-出租车计费 、靠谱的车-(C++/Python)-C卷D卷-100分
    2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:23再多......
  • 2024华为OD机试真题-API集群负载统计-(C++/Python)-C卷D卷-100分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)题目描述某个产品的RESTfulAPI集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTfulAPI是......
  • 基于springboot的南门桥社区疫情防疫系统-48138(免费领源码+数据库)可做计算机毕业设计J
    Springboot南门桥社区疫情防疫系统的设计与实现摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对南门桥社区疫情防疫系统等问题,对南门桥社区......
  • 关于UEC++中FText、FString与FName
    FText用于本地化和用户界面显示文本。可以方便地将游戏文本翻译成不同的语言。FNameFName在UE中的功能与C#中的字符串池有相似之处,但它们的内部实现和用途有些不同。FName是一种轻量级的、不变的标识符类型,主要用于高效地处理字符串的比较和存储。特点:不可变:一旦创建,FNam......