请用python写一个找出一千以内水仙花数的函数
时间: 2024-04-11 19:15:44 浏览: 18
def narcissistic_numbers():
result = []
for i in range(1, 1001):
digits = [int(d) for d in str(i)]
sum = 0
for digit in digits:
sum += digit ** len(digits)
if sum == i:
result.append(i)
return result
print(narcissistic_numbers())
相关问题
python用函数写水仙花数 一千以内的水仙花数
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。在Python中,我们可以使用函数来判断和输出一千以内的水仙花数。
以下是用函数写水仙花数的示例代码:
```python
def is_armstrong_number(num):
# 将数字转换为字符串,获取位数
num_str = str(num)
n = len(num_str)
# 计算每个位上的数字的n次幂之和
sum = 0
for digit in num_str:
sum += int(digit) ** n
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
def find_armstrong_numbers():
armstrong_numbers = []
# 遍历一千以内的数字
for num in range(100, 1000):
if is_armstrong_number(num):
armstrong_numbers.append(num)
return armstrong_numbers
# 调用函数并输出结果
armstrong_numbers = find_armstrong_numbers()
print("一千以内的水仙花数:", armstrong_numbers)
```
运行以上代码,将输出一千以内的水仙花数:[153, 370, 371, 407]。
请用python写一个函数输出所有的水仙花数
水仙花数指的是一个 n 位数 ( n≥3 ) ,它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
下面是实现代码:
```python
def narcissistic_number():
res = []
for i in range(100,1000):
s = str(i)
if int(s[0])**3+int(s[1])**3+int(s[2])**3 == i:
res.append(i)
return res
print(narcissistic_number())
```
输出结果为:
```python
[153, 370, 371, 407]
```
这里定义了一个名为 narcissistic_number 的函数,这个函数返回的是一个包含所有三位数水仙花数的列表。在函数内部,使用了 for 循环遍历所有的三位数,然后将这个数转换为字符串类型,并取出每一位的数字进行运算。如果这个数是水仙花数,就将其加入到结果列表中。最后返回结果列表。