水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。 本题要求编写程序,计算所有N位水仙花数。 #Python
时间: 2024-09-15 13:07:54 浏览: 51
水仙花数,也被称为 narcissistic number 或 pluperfect digital invariant,是一种特殊的整数序列,满足这样的条件:将该数各个位上的数字分别平方后求和,结果正好等于原数。为了编写一个 Python 程序来找出所有的 N 位水仙花数,你可以按照以下步骤:
```python
def find_narcissistic_numbers(n):
lower_bound = 10 ** (n - 1)
upper_bound = 10 ** n - 1
narcissists = []
for num in range(lower_bound, upper_bound + 1):
# 将数字转换为字符串以便逐位处理
str_num = str(num)
sum_of_powers = sum(int(digit) ** n for digit in str_num)
# 如果相等,则是水仙花数
if sum_of_powers == num:
narcissists.append(num)
return narcissists
# 测试函数并打印结果
n = int(input("请输入 N(位数):"))
narcissists = find_narcissistic_numbers(n)
print(f"在 {n} 位数范围内有以下水仙花数:")
for num in narcissists:
print(num)
阅读全文