题意:输出一个数列,要求递增的并且后面的数不能被它前面的数整除
分析:就是输出质数,用素数筛。
刚学了素数筛但是从课本上学过后只是有这个印象,其实没有理解到它的精髓也不会实际应用,这题加深了我的理解
新技能get
#include<iostream>
#include<cstring>
using namespace std;
int n;
int vis[10000009];
int prime[10000009];
void check()
{
memset(vis,1,sizeof(vis));
int k=0;
for(int i=2;i<10000000;i++){
if(vis[i]){
prime[k++]=i;
for(int j=2;j*i<10000000;j++){
vis[i*j]=0;
}
}
}
}
int main()
{
check();
cin>>n;
for(int i=0;i<n-1;i++) cout<<prime[i]<<" ";
cout<<prime[n-1]<<endl;
}
本文通过实例解析了素数筛算法的概念和应用,强调了理解算法精髓的重要性,并通过编程实现加深了对质数筛选的理解。从理论到实践,读者可以掌握如何使用素数筛算法来生成质数序列。
&spm=1001.2101.3001.5002&articleId=44729027&d=1&t=3&u=48f9ced3ed544f19a81cbd7fc1d65fdc)
1201

被折叠的 条评论
为什么被折叠?



