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

素数筛(欧拉筛算法)

#include<bits/stdc++.h>

using namespace std;

#define maxn 100000

int vis[maxn];

int prime[maxn];

//欧拉筛函数

int Euler_sieve(int n)

{

    int i,j,k;

    k=0;//保存素数的个数

    memset(vis,0,sizeof(int)*maxn);//初始化数组

    for(i=2;i<=n;i++)

    {

        if(vis[i]==0)//i是素数,则存起来

            prime[k++]=i;

        for(j=0;j<k;j++)//进行倍增,用i去乘以i之前(包括i)的素数

        {

            if(i*prime[j]>n)//倍增结果超出范围,退出

                break;

            vis[ i*prime[j] ]=1;//将倍增结果进行标记

            if(i%prime[j]==0)//i是前面某个素数的倍数时,也需要退出,能大大提升时间效率

                break;

        }

    }

    return k;

}

int main(){

    int n;

    cin>>n;

    int len=Euler_sieve(n);

    for(int i=0;i<len;i++){

        cout<<prime[i]<<endl;

    }

    return 0;

}

相关文章:

  • 游戏引擎学习第288天:继续完成Brains
  • 遨游科普:三防平板是什么?有什么功能?
  • 使用Langfuse和RAGAS,搭建高可靠RAG应用
  • AI编码代理的崛起 - AlphaEvolve与Codex的对比分析引言
  • Redis 事务与管道:原理、区别与应用实践
  • 深入理解桥接模式:解耦抽象与实现的设计艺术
  • 给你的matplotlib images添加scale Bar
  • DataX:一个开源的离线数据同步工具
  • 计算机视觉与深度学习 | Python实现EEMD-LSTM时间序列预测(完整源码和数据)
  • Predict Podcast Listening Time-(回归+特征工程+xgb)
  • 基于C语言的歌曲调性检测技术解析
  • NX二次开发——设置对象的密度(UF_MODL_set_body_density)
  • redisson分布式锁实现原理归纳总结
  • JAVA EE_HTTP
  • 仅需三张照片即可生成沉浸式3D购物体验?谷歌电商3D方案全解析
  • 信息系统项目管理师高级-软考高项案例分析备考指南(2023年案例分析)
  • 【通用智能体】Search Tools:Open Deep Research 项目实战指南
  • Ubuntu 安装 squid
  • 【MySQL】第五弹——表的CRUD进阶(三)聚合查询(上)
  • AI:人形机器人的应用场景以及商业化落地潜力分析
  • 以色列媒体:哈马斯愿意释放部分人员换取两个月停火
  • 新疆多地市民拍到不明飞行物:几秒内加速消失,气象部门回应
  • 高飞已任南航集团党组副书记
  • 中国首艘海洋级智能科考船“同济”号试航成功,可搭载水下遥控机器人
  • 马上评|清理“滥竽充数者”,为医者正名
  • 阿里上季度营收增7%:淘天营收创新高,AI产品营收连续七个季度三位数增长