一个三位的十进制整数,如果它的三个数位的数字立方和等于这个数的数值,则称它为一个”水仙数”。编写程序,计算出某一范围内的所有“水仙数”。
时间: 2025-02-03 17:15:17 浏览: 29
好的,我来为您编写一个程序,用于计算某一范围内的所有"水仙数"。以下是Python语言的实现:
```python
def is_narcissistic(num):
# 将数字转换为字符串,以便逐位处理
str_num = str(num)
# 计算每个位上的数字的立方和
sum_of_cubes = sum(int(digit) ** 3 for digit in str_num)
# 判断是否等于原数
return sum_of_cubes == num
def find_narcissistic_numbers(start, end):
# 遍历范围内的所有数字
narcissistic_numbers = [num for num in range(start, end+1) if is_narcissistic(num)]
return narcissistic_numbers
# 设置范围
start = 100
end = 999
# 查找水仙数
result = find_narcissistic_numbers(start, end)
# 输出结果
print(f"{start}到{end}之间的水仙数有:")
print(result)
```
这个程序的工作原理如下:
1. `is_narcissistic` 函数用于判断一个数是否为水仙数。它将数字转换为字符串,这样可以方便地逐位处理。
2. `find_narcissistic_numbers` 函数遍历指定范围内的所有数字,使用列表推导式和 `is_narcissistic` 函数来筛选出水仙数。
3. 主程序中,我们设置了一个三位数的范围(100到999),然后调用 `find_narcissistic_numbers` 函数来查找水仙数。
4. 最后,程序输出结果。
运行这个程序,您将得到100到999之间的所有水仙数。
阅读全文
相关推荐


















