实现Python程序,用于判断用户输入的数字是否为水仙花数: 注:水仙花数是指一个3位数,它的每个数位上的数字的3次幂之和等于它本 身。例如:1^3+5^3+3^3=153。 拓展:对任意n位数,判断其是否为每个数位上的数字的n次幂之和等于它本 身。
时间: 2024-10-21 20:01:35 浏览: 33
Python水仙花数.zip
为了实现这个功能,你可以编写一个Python函数,接受用户输入的整数作为参数,然后检查该数字是否满足水仙花数的条件。首先,我们将函数命名为`is_narcissistic_number`,并实现n位数的版本:
```python
def is_narcissistic_number(num, n=None):
# 如果未指定n,假设输入的是三位数
if n is None:
n = len(str(num))
# 将数字转换为字符串,然后按位置取每一位数字的幂相加
sum_of_powers = sum(int(digit)**n for digit in str(num))
# 判断是否相等,如果相等则返回True,表示是水仙花数;否则False
return num == sum_of_powers
# 获取用户输入
user_input = int(input("请输入一个整数(若为n位数请输入n,否则默认为3位): "))
n = input("您想检查几位数的水仙花数吗? (留空则默认为3): ").strip() or 3
# 判断输入的数是否是水仙花数
if is_narcissistic_number(user_input, int(n)):
print(f"{user_input} 是一个{n}位的水仙花数")
else:
print(f"{user_input} 不是一个{n}位的水仙花数")
阅读全文