如何用Python编程判断一个数是否为水仙花数(Narcissistic number)或者玫瑰花数(Armstrong number)?
时间: 2024-09-13 14:03:17 浏览: 225
Python水仙花数.zip
水仙花数,也被称作自恋数或自幂数,是指一个n位数,其各位数字的n次方和等于该数本身。例如,153是一个3位数,且153 = 1^3 + 5^3 + 3^3,因此153是一个水仙花数。在Python中,我们可以使用以下代码来判断一个数是否为水仙花数:
```python
def is_narcissistic_number(num):
# 计算数字的位数
n = len(str(num))
# 计算各位数字的n次方和
sum_of_powers = sum(int(digit) ** n for digit in str(num))
# 判断是否等于原始数字
return sum_of_powers == num
# 示例
num = int(input("请输入一个数:"))
if is_narcissistic_number(num):
print(f"{num} 是一个水仙花数。")
else:
print(f"{num} 不是一个水仙花数。")
```
这段代码首先计算输入数字的位数,然后计算每位数字的相应次方和,并与原始数字进行比较。如果相等,则该数字是水仙花数。
阅读全文