4367: GESP C++ 五级 3小杨的幸运数202312
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:2
题目描述
样例输入 复制
2 4
1
4
5
9
样例输出 复制
4
lucky
8
lucky
提示
#include<bits/stdc++.h>
using namespace std;
const int N = 1001 * 1001;
const double eps = 1e-8;
bool is_lucky[N + 5];
int next_lucky[N + 5];
int main() {
int a, T;
scanf("%d%d", &a, &T);
for (int i = 1; i <= N; i ++) {
int t = int(sqrt(i) + eps);
if (i >= a && t * t == i)
is_lucky[i] = 1;
if (! is_lucky[i])
continue ;
for (int j = i + i; j <= N; j += i)
is_lucky[j] = 1;
}
for(int i = N; i; i --)
next_lucky[i] = is_lucky[i] ? i : next_lucky[i + 1];
while(T --) {
int x;
scanf("%d", &x);
if (is_lucky[x])
cout << "lucky" << endl;
else
cout << next_lucky[x] << endl;
}
return 0;
}