酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

描述 判断一个正整数n是否能被一个"幸运数"整除。幸运数是指一个只包含4或7的正整数。如:4、7、47、477等都是幸运数,4是最小的幸运数,17、42则不是幸运数。 输入描述 一行一个正整数n,1≤n≤1000。 输出描述 能被一个幸运数整除,输出该数字和"YES",空格间隔;否则输出该数字和"NO",空格间隔。 用例输入 1 4 用例输出 1 4 YES

以下是使用Python实现的代码: ```python # 生成所有可能的幸运数 lucky_numbers = [] # 因为n最大为1000,我们可以通过一定范围生成幸运数 for i in range(1, 1001): num_str = str(i) valid = True for digit in num_str: if digit not in '47': valid = False break if valid: lucky_numbers.append(i) # 获取输入的正整数n n = int(input()) # 检查n是否能被幸运数整除 found = False for lucky in lucky_numbers: if n % lucky == 0: print(f"{n} YES") found = True break # 如果没有找到能整除n的幸运数 if not found: print(f"{n} NO") ``` 代码解释: 1. 生成幸运数:通过遍历从1到1000的所有数字,将每个数字转换为字符串,检查字符串中的每个字符是否只包含4或7,如果是则将其添加到幸运数列表中。 2. 获取输入:使用`input()`函数获取用户输入的正整数`n`,并将其转换为整数类型。 3. 检查整除性:遍历幸运数列表,检查`n`是否能被其中的幸运数整除。如果能整除,则输出该数字和`YES`,并将`found`标记为`True`,然后跳出循环。 4. 输出结果:如果`found`为`False`,说明没有找到能整除`n`的幸运数,输出该数字和`NO`。 [2025-07-20 20:01:19 | AI问答 | 384点数解答]

相关提问