大神求调 #1 RE
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int a, n;
int pCnt = 0;
int lCnt = 0;
int startIdx = 0;
int sa;
int luckyNumbers[2000010];
void initLucky()
{
bool isLucky[2000010];
for (int i = 0; i < 2000005; ++i)
{
isLucky[i] = false;
}
int i = sa;
while (i * i < 2000005)
{
int superLuckyNumber = i * i;
int ss = superLuckyNumber;
while (ss < 2000005)
{
isLucky[ss] = true;
luckyNumbers[lCnt++] = ss;
ss += superLuckyNumber;
}
i++;
}
}
int main()
{
cin >> a >> n;
sa = ceil(sqrt(a));
initLucky();
sort(luckyNumbers, luckyNumbers + lCnt);
for (int i = 0; i < n; ++i)
{
int q;
cin >> q;
int *p = lower_bound(luckyNumbers, luckyNumbers + lCnt, q);
if (*p == q)
cout << "lucky" << endl;
else
{
cout << *p << endl;
}
}
return 0;
}