python水仙花数函数
时间: 2023-08-21 17:15:29 浏览: 153
水仙花数是指一个 n位数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为1^3 +5^3 +3^3 =153。下面是一个用 Python 编写的水仙花数函数:
```pythondef narcissistic_number(n):
result = []
for num in range(10**(n-1),10**n):
digits = [int(x) for x in str(num)]
if sum([digit**n for digit in digits]) == num:
result.append(num)
return result```
你可以调用 `narcissistic_number(n)` 函数来获取 n位数的所有水仙花数。例如,`narcissistic_number(3)` 将返回一个列表,其中包含所有三位数的水仙花数。
相关问题
python判断水仙花数函数_Python(6):上机练习——函数练习之水仙花数 原创
在Python中,判断一个整数是否是水仙花数(Narcissistic Number)通常会创建一个函数来完成这个任务。水仙花数是指一个三位数(每位数字的立方和等于该数本身),例如153(1^3 + 5^3 + 3^3 = 153)。以下是编写一个简单的Python函数,用于检查给定的数是否为水仙花数:
```python
def is_narcissistic_number(num):
# 检查输入是否为正整数且位数为3
if not isinstance(num, int) or num < 100 or num > 999:
return False
# 将数字转换为字符串并提取每一位数字
digits = [int(digit) for digit in str(num)]
# 计算每一位数字的立方和
sum_of_cubes = sum([digit**3 for digit in digits])
# 如果和等于原始数字,那么它就是水仙花数
return sum_of_cubes == num
```
你可以通过调用`is_narcissistic_number()`函数并传入一个三位数来测试它,如`is_narcissistic_number(153)`。
python水仙花数
Python实现水仙花数的代码如下:
```python
# 定义一个函数,判断一个数是否为水仙花数
def isNarcissisticNumber(num):
# 将数字转换成字符串,以便逐位计算
num_str = str(num)
# 获取数字的位数
n = len(num_str)
# 计算每一位的n次方之和
sum = 0
for i in num_str:
sum += int(i) ** n
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
# 输出1000以内的水仙花数
for i in range(1000):
if isNarcissisticNumber(i):
print(i)
```
输出结果:
```
0
1
2
3
4
5
6
7
8
9
153
370
371
407
```
阅读全文