Luogu P3383 【模板】线性筛素数
似乎也挺水的, 看洛谷上题解有提到欧拉筛的大佬(预计我过几天也会去学一学),然鹅蒟蒻的我并不会,写了个so simple的程序,然而各种RE,毕竟我太菜了。
#include<stdio.h>
using namespace std;
const int maxn=1e7+5;
bool f[maxn];int n,m;
int main(){
scanf("%d%d",&n,&m);
for(int i=2;i<=n;i++){
if(f[i])continue;
for(int j=i*i;j<=n;j+=i)f[j]=true;
}
for(int i=0;i<m;i++){
int j;scanf("%d",&j);
if(!f[j])puts("Yes");
else puts("No");
}
return 0;
}
明眼的大佬肯定一眼就发现了错误。。。
二测0pt|RE代码:
#include<stdio.h>
using namespace std;
const long long maxn=1e7+5;
bool f[maxn]={false,true,false};long long n,m;
int main(){
scanf("%d%d",&n,&m);
for(long long i=2;i<=n;i++){
if(f[i])continue;
for(long long j=i*i;j<=n;j+=i)f[j]=true;
}
for(long long i=0;i<m;i++){
long long j;scanf("%d",&j);
if(!f[j])puts("Yes");
else puts("No");
}
return 0;
}
#include<stdio.h>
using namespace std;
const long long maxn=1e7+5;
bool f[maxn]={false,true,false};long long n,m;
int main(){
scanf("%lld%lld",&n,&m);
for(long long i=2;i<=n;i++){
if(f[i])continue;
for(long long j=i*i;j<=n;j+=i)f[j]=true;
}
for(long long i=0;i<m;i++){
long long j;scanf("%lld",&j);
if(!f[j])puts("Yes");
else puts("No");
}
return 0;
}