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

素数筛(欧拉筛算法)

#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;

}

http://www.xdnf.cn/news/6886.html

相关文章:

  • PIC16F18877 的主时钟 设置方法
  • Python爬虫实战:获取1688商品信息
  • [PMIC]PMIC重要知识点总结
  • 大数据会被AI取代?不!大数据才是AI的“智慧燃料”引擎
  • 烹饪实训室的行业标准实训
  • encrypt-labs AES 固定key
  • HelloWorld
  • 手写tomcat:基本功能实现(4)
  • webman用nginx代理静态json文件的异步跨域
  • 最小二乘法拟合平面(线性回归法、梯度下降、PCA法)
  • 2025年第三届盘古石杯初赛(智能冰箱,监控部分)
  • 深入理解 requestIdleCallback:浏览器空闲时段的性能优化利器
  • facebook开源分子化学数据集和模型(OMol25)论文速读
  • 典籍知识问答模块AI问答bug修改
  • 机器学习——逻辑回归
  • Mipsel固件Fuzzing小记
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
  • AUTOSAR图解==>AUTOSAR_SWS_HWTestManager
  • STM32H7时钟树
  • 开源语音-文本基础模型和全双工语音对话框架 Moshi 介绍
  • OTA与boot loader
  • 北大:基于因果的LLM形式化推理
  • 进阶-数据结构部分:3、常用查找算法
  • NVC++ 介绍与使用指南
  • 很啰嗦,再次总结 DOM
  • CAPL Class: TcpSocket (此类用于实现 TCP 网络通信 )
  • 使用教程:8x16模拟开关阵列可级联XY脚双向导通自动化接线
  • Vue-键盘事件
  • Elasticsearch Fetch阶段面试题
  • 1.2 C++第一个程序