这题耗了近一星期,最开始30pts,现在90pts。到底哪里错了???!!!
90分代码:
#include<bits/stdc++.h>
using namespace std;
int a,n,x,cnt=0,xy[1000000];
bool isxy[1000005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>a>>n;
for(int i=0;i<1005;++i){
if(i*i>=a){
isxy[i*i]=1;
for(int j=2;j*i*i<1000005;++j){
isxy[i*i*j]=1;
}
}
}
for(int i=0;i<1000005;++i){
if(isxy[i]){
xy[cnt++]=i;
}
}
for(int i=0;i<n;++i){
cin>>x;
if(isxy[x]){
cout<<"lucky"<<endl;
}
else{
cout<<xy[upper_bound(xy,xy+cnt,x)-xy]<<endl;
}
}
return 0;
}