编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
时间: 2024-05-31 14:08:14 浏览: 23
def narcissistic_number():
for i in range(100, 1000):
a = i // 100
b = (i // 10) % 10
c = i % 10
if a**3 + b**3 + c**3 == i:
print(i)
narcissistic_number()
相关问题
用python编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
def narcissistic_number():
res = []
for i in range(100, 1000):
num = str(i)
sum = 0
for j in num:
sum += int(j) ** 3
if sum == i:
res.append(i)
return res
print(narcissistic_number())
用Python编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
当然可以,我们可以创建一个名为`find_water_lilies()`的函数,遍历100到999的所有整数,检查它们是否满足水仙花数的条件。下面是相应的Python代码:
```python
def is_perfect_number(num):
# 对于3位数,百位、十位和个位分别是num // 100, num // 10 % 10, 和 num % 10
digits = [int(digit) for digit in str(num)]
return sum(map(lambda x: x ** 3, digits)) == num
def find_water_lilies():
water_lilies = []
for num in range(100, 1000):
if is_perfect_number(num):
water_lilies.append(num)
return water_lilies
water_lily_numbers = find_water_lilies()
print("100至999之间的水仙花数有:")
for number in water_lily_numbers:
print(number)
阅读全文