大神求调 #1 RE
查看原帖
大神求调 #1 RE
1065385
FriendlyXuKun楼主2024/7/28 19:25

大神求调 #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;
}

2024/7/28 19:25
加载中...