素数筛(欧拉筛算法)

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

}

相关推荐
_wyt0019 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
通信小呆呆11 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
benben04412 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
玖玥拾13 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..13 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅100513 小时前
【leetcode】88.合并两个有序数组js
算法
один but you14 小时前
constexpr函数
c++
生成论实验室14 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres82114 小时前
算法复键——树状数组
数据结构·算法