素数筛(欧拉筛算法)

#include<bits/stdc++.h>

using namespace std;

#define maxn 100000

int vismaxn;

int primemaxn;

//欧拉筛函数

int Euler_sieve(int n)

{

int i,j,k;

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

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

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

{

if(visi==0)//i是素数,则存起来

primek++=i;

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

{

if(i*primej>n)//倍增结果超出范围,退出

break;

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

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

break;

}

}

return k;

}

int main(){

int n;

cin>>n;

int len=Euler_sieve(n);

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

cout<<primei<<endl;

}

return 0;

}

相关推荐
xuxigifxfh10 分钟前
牛客:HJ170 01序列
java·开发语言·算法·华为机考
朝朝辞暮i21 分钟前
C++ 第 33 课:事件循环——spin() 到底在干什么
开发语言·c++·算法
殷色玫瑰32 分钟前
AVL树:从平衡因子到四种旋转的完整实现
c语言·数据结构·c++·算法·visualstudio
进化中的刀盾兽1 小时前
从零实现 C++ AI 大模型接入 SDK(九):LLMManager 统一模型管理与请求路由
c++
会周易的程序员1 小时前
STVM OSAL 层架构设计文档
c++·物联网·嵌入式·虚拟机·iot·软plc·iec61131
.YM.Z1 小时前
C++——【红黑树】原理详解:定义、性质、插入变色与旋转实现
开发语言·c++
jidaowansui1 小时前
B3643 图的存储———>数组模拟邻接矩阵
算法
y1su2 小时前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法
youshi66682 小时前
平衡车——PID算法优化
stm32·单片机·嵌入式硬件·算法·pid·平衡车
无名猿2 小时前
constexpr 能力扩张:从 C++11 到 C++20 的编译期计算
c++·性能优化·现代c++·编译期