社区讨论
区别在哪
P3383【模板】线性筛素数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mifwqf1v
- 此快照首次捕获于
- 2025/11/26 19:14 3 个月前
- 此快照最后确认于
- 2025/11/26 20:01 3 个月前
RT,第一份是直接预处理出1e8以内的质数,第二份是预处理出来<=n的质数,为什么一个WA一个AC(为了方便阅读省略了快读)
CPP#include<bits/stdc++.h>
#define pc putchar
using namespace std;
using namespace IO;
namespace Main{
const int N=1e8+7;
int n,q;
bool st[N];
vector<int> primes;
inline void init(){
for(int i=2;i<N;i++){
if(!st[i]){
primes.push_back(i);
}
for(int j=0;primes[j]<N/i;j++){
st[i*primes[j]]=1;
if(!(i%primes[j])){
break;
}
}
}
return ;
}
inline void main(){
init();
n=rd(),q=rd();
while(q--){
wt(primes[rd()-1]),pc('\n');
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
CPP
#include<bits/stdc++.h>
#define int __int128
#define pc putchar
using namespace std;
using namespace IO;
namespace Main{
const int N=1e8+7;
int n,q;
bool st[N];
vector<int> primes;
inline void init(){
for(int i=2;i<=n;i++){
if(!st[i]){
primes.push_back(i);
}
for(int j=0;primes[j]<=n/i;j++){
st[i*primes[j]]=1;
if(!(i%primes[j])){
break;
}
}
}
return ;
}
inline void main(){
n=rd(),q=rd();
init();
while(q--){
wt(primes[rd()-1]),pc('\n');
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...