水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。 本题要求编写程序,计算所有N位水仙花数。
时间: 2024-10-21 10:16:05 浏览: 77
水仙花数列
水仙花数是一种有趣的数学概念,尤其在编程挑战中常被用来练习循环、条件判断和列表操作。在Python中,你可以通过遍历指定范围内的正整数,并对每一位进行幂运算求和,然后检查这个和是否等于原数,以此来找出水仙花数。下面是一个简单的Python函数示例:
```python
def find_water_lilies(n):
# 定义最大n位数
max_num = int('9' * n)
# 列表存储水仙花数
narcissistic_numbers = []
for num in range(100, max_num): # 从三位数开始,因为一位和两位数显然不是水仙花数
digits = [int(d) for d in str(num)]
# 计算每个位的N次幂之和
sum_of_powers = sum([digit ** n for digit in digits])
# 如果和等于原数,则添加到列表中
if sum_of_powers == num:
narcissistic_numbers.append(num)
return narcissistic_numbers
# 要查找的位数,比如5位数
n = 5
water_lilies = find_water_lilies(n)
print(f"找到的所有{n}位水仙花数有:{water_lilies}")
阅读全文