社区讨论
那个下划线题解,被我格式化了!
P3383【模板】线性筛素数参与者 11已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ype9k
- 此快照首次捕获于
- 2025/11/21 05:47 4 个月前
- 此快照最后确认于
- 2025/11/21 06:45 4 个月前
原来是这样
CPP#include<cstdio>
using namespace std;
inline char _(){
static char _____________[1<<17],*______________=_____________,*_______________=_____________;
return ______________==_______________&&(_______________=(______________=_____________)+fread(_____________,1,1<<17,stdin),______________==_______________)?EOF:*______________++;
}
template <class T> inline void __(T&____,register char ___=_(),int _____=1){
for(____=0;(___<'0'||___>'9')&&___!='-';___=_());
for(___=='-'?_____=-1,___=_():0;(___>='0'&&___<='9');___=_()) (____*=10)+=___-'0'; ____*=_____;
}
bool ______[10000007];
int _______[10000007];
inline void ________(){
______[1]=1;
for(register int _________=2;_________<=10000000;++_________){
if(!______[_________]) _______[++_______[0]]=_________;
for(register int __________=1;__________<=_______[0]&&_________*_______[__________]<=10000000;++__________){
______[_________*_______[__________]]=1,_______[_________*_______[__________]]=1;
if(_________%_______[__________]==0) break;
}
}
}
int main(){
________();
int ____,___________,____________;
__(____),__(___________);
for(register int _________=1;_________<=___________;++_________){
__(____________);
if(!______[____________]) puts("Yes");
else puts("No");
}
return 0;
}
经我处理,变成这样了
CPP#include<cstdio>
using namespace std;
inline char p(){
static char c[1<<17],*b=c,*a=c;
return b==a&&(a=(b=c)+fread(c,1,1<<17,stdin),b==a)?EOF:*b++;
}
template <class T> inline void n(T&l,register char m=p(),int k=1){
for(l=0;(m<'0'||m>'9')&&m!='-';m=p());
for(m=='-'?k=-1,m=p():0;(m>='0'&&m<='9');m=p()) (l*=10)+=m-'0'; l*=k;
}
bool j[10000007];
int i[10000007];
inline void h(){
j[1]=1;
for(register int g=2;g<=10000000;++g){
if(!j[g]) i[++i[0]]=g;
for(register int f=1;f<=i[0]&&g*i[f]<=10000000;++f){
j[g*i[f]]=1,i[g*i[f]]=1;
if(g%i[f]==0) break;
}
}
}
int main(){
h();
int l,e,d;
n(l),n(e);
for(register int g=1;g<=e;++g){
n(d);
if(!j[d]) puts("Yes");
else puts("No");
}
return 0;
}
回复
共 11 条回复,欢迎继续交流。
正在加载回复...