社区讨论

95pts求条

B3929[GESP202312 五级] 小杨的幸运数参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@miempya9
此快照首次捕获于
2025/11/25 21:46
3 个月前
此快照最后确认于
2025/11/25 23:07
3 个月前
查看原帖
WA on #15
CPP
#include <iostream>
using namespace std;
int a,in[200000],n,x,Max,Min=1000010,mnext[1000002];
bool lucky[1000002];
int sqrt_ceil(int n){
    int m=__builtin_sqrt(n);
    if(m*m!=n) ++m;
    return m;
}
int main(){
    cin.tie(0)->sync_with_stdio(0);
    cin>>a>>n;
    int m=sqrt_ceil(a);
    for(int i=0;i<n;++i) cin>>in[i],
        Max=max(Max,in[i]),
        Min=min(Min,in[i]);
    for(int i=m,e=__builtin_sqrt(Max);i<=e;++i){
        int tem=i*i;
        for(long long j=tem;j<=Max;j+=tem)
            lucky[j]=1;
    }
    for(int i=Max,l=sqrt_ceil(Max)*sqrt_ceil(Max);i>=Min;--i){
        if(lucky[i]) l=i,mnext[i]=i;
        else mnext[i]=l;
    }
    for(int i=0;i<n;++i){
        if(lucky[in[i]]) cout<<"lucky\n";
        else cout<<mnext[in[i]]<<'\n';
    }
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...