P7960 报数
2021年的T1
蒟蒻一个,思路埃氏筛
代码又臭又长......
#include<bits/stdc++.h>
using namespace std;
#define N 100005
#define M 10000005
bool vis[M];
int ans[M],cnt,a[N],pos[M],n,x;
void seven(int n){
int t,r,flag=0;
for(int i=1;i<=n;i++){
if(vis[i])continue;
t=i;
flag=0;
while(t!=0){
r=t%10;
t/=10;
if(r==7){
flag=1;
break;
}
}
if(flag==1){
for(int j=i;j<=n;j+=i)vis[j]=1;
}
}
cnt=0;
for(int i=1;i<=n;i++){
if(vis[i]==0){
cnt++;
pos[i]=cnt;
ans[cnt]=i;
}
}
}
int main(){
scanf("%d",&n);
seven(10000000);
for(int i=1;i<=n;i++){
scanf("%d",&x);
if(vis[x]==1)printf("-1\n");
else{
printf("%d\n",ans[pos[x]+1]);
}
}
return 0;
}
思路应该对了,却70分WA了......
球球各位大佬指点指点吧!
孩子还有半年就CSP-S辣!!!