[GESP202312 五级] 小杨的幸运数

GESP编程共123题,本题是整站第1386题,已经有人完成了本题,加油!

题目描述

小杨认为,所有大于等于 a 的完全平方数都是他的超级幸运数。

小杨还认为,所有超级幸运数的倍数都是他的幸运数。自然地,小杨的所有超级幸运数也都是幸运数。

对于一个非幸运数,小杨规定,可以将它一直 +1,直到它变成一个幸运数。我们把这个过程叫做幸运化。例如,如果a=4,那么 4 是最小的幸运数,而 1 不是,但我们可以连续对 1 做 3 次 +1 操作,使其变为 4,所以我们可以说, 1幸运化后的结果是 4。

现在,小杨给出 N 个数,请你首先判断它们是不是幸运数;接着,对于非幸运数,请你将它们幸运化。

输入格式

第一行 2 个正整数 a,N。

接下来 N 行,每行一个正整数 x ,表示需要判断(幸运化)的数。

输出格式

输出 N 行,对于每个给定的 x ,如果它是幸运数,请输出 lucky,否则请输出将其幸运化后的结果。

输入输出样例

输入 #1

2 4 
1 
4 
5 
9

输出 #1

4 
lucky 
8 
lucky

输入 #2

16 11 
1 
2 
4 
8 
16 
32 
64 
128 
256 
512
1024

输出 #2

16 
16 
16 
16 
lucky 
lucky 
lucky 
lucky 
lucky 
lucky 
lucky

说明/提示

样例解释 1

虽然是完全平方数,但它小于 a,因此它并不是超级幸运数,也不是幸运数。将其进行 3 次 +1 操作后,最终得到幸运数 4。4是幸运数,因此直接输出 lucky 。

5 不是幸运数,将其进行 3 次 +1 操作后,最终得到幸运数 8。

9 是幸运数,因此直接输出 lucky 。

数据规模

对于 30% 的测试点,保证 a,x≤100,N≤100。

对于 60% 的测试点,保证 a,x≤10^6。

对于所有测试点,保证 a≤1,000,000;保证 N≤2×10^5;保证 1≤x≤1,000,001。

别灰心,再试一次!

真题解析

【题目大意】给一个完全平方数的标准,推导出哪些是超级幸运数,然后判断N个数字中,哪些是超级幸运数,是的输出“lucky",不是的输出离该数字最近的比它大的数字
【考纲知识点】数学知识,埃筛知识,循环知识
【解题思路】完全平方数按照定义,包括1,4,9,16,25..…。超级幸运数还可以是完全平方数的倍数,因此8,12,18..…也是超级幸运数。数据范围比较大,1e6,用埃筛的模板,判断每一个数字是否是幸运数字。不是幸运数字的话,保留离它最近的幸运数字作为答案。最终完成整个查询。
【参考程序】

本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。