编写-一个函数,以大于1的正整数n为参数,返回n位数中符合自幂数要求的数的列表。1个n位自幂数满足每一位数的n次方相加等于这个数本身。利用该函数编程找出3位数中的水仙花数。
时间: 2024-02-29 17:52:57 浏览: 63
以下是 Python 代码实现:
```python
def narcissistic_numbers(n):
result = []
for i in range(10**(n-1), 10**n):
digits = [int(d) for d in str(i)]
if sum([d**n for d in digits]) == i:
result.append(i)
return result
narcissistic_3 = narcissistic_numbers(3)
print(narcissistic_3)
```
输出结果为:
```
[153, 370, 371, 407]
```
其中,水仙花数即为3位自幂数,即列表中的 `[153, 370, 371, 407]`。
相关问题
编写一个函数selfidem(n),以大于1的正整数n为参数,返回n位数中符合自幂数要求的数的列表。 1个n位自幂数满足每一位数的n次方相加等于这个数本身。利用该函数编程找出3位数中的水仙花数。 提醒:输出语句为:print(selfidem(3))
以下是Python代码实现:
```python
def selfidem(n):
result = []
for i in range(10**(n-1), 10**n):
temp = i
total = 0
while temp > 0:
total += (temp % 10) ** n
temp //= 10
if total == i:
result.append(i)
return result
print(selfidem(3))
```
输出结果为:
```
[153, 370, 371, 407]
```
其中,153,370,371和407都是3位数中的自幂数,也称为水仙花数。
编写一个函数selfidem(n),以大于1的正整数n为参数,返回n位数中符合幂数要求的数的列表,一个n位自幂数满足每一位数的n次方相加等于这个数本身,利用该函数编程找出三位数中的水仙花数
以下是实现selfidem函数的代码:
```python
def selfidem(n):
result = []
for i in range(10**(n-1), 10**n): # 遍历所有n位数
s = sum([int(c)**n for c in str(i)]) # 计算各位的n次方之和
if s == i:
result.append(i) # 如果符合幂数要求,则加入结果列表
return result
```
使用该函数找出三位数中的水仙花数:
```python
print(selfidem(3))
```
输出结果为:
```
[153, 370, 371, 407]
```
因此,三位数中的水仙花数有4个,分别是153、370、371和407。
阅读全文