编写程序实现以下功能:计算m到n之间的所有水仙花数并输出(水仙花数是一个三位整数,其值与各位数字的立方和相等)
时间: 2024-09-19 10:14:44 浏览: 41
编写一个程序来查找并打印从m到n范围内的所有水仙花数,可以按照以下步骤实现:
首先,你需要创建一个函数来判断一个数字是否是水仙花数。对于一个三位数,你可以将它分解成百位、十位和个位,然后分别求出它们的立方,最后检查这个立方和是否等于原数。
```python
def is_narcissistic_number(num):
# 对于非负三位数
if num < 100 or num % 100 != 0:
return False
digits = [int(d) for d in str(num)] # 获取百位、十位和个位
sum_of_cubes = sum(d**3 for d in digits)
return sum_of_cubes == num
```
接下来,你需要遍历给定范围内的所有数字,调用上述函数,并只对找到的水仙花数进行输出:
```python
def find_narcissistic_numbers(start, end):
narcissistic_nums = []
for num in range(start, end + 1):
if is_narcissistic_number(num):
narcissistic_nums.append(num)
print("从{}到{}之间所有的水仙花数有:".format(start, end))
for num in narcissistic_nums:
print(num)
# 示例用法:
find_narcissistic_numbers(100, 500) # 查找100到500之间的水仙花数
```
运行这段代码,它会输出指定范围内符合条件的水仙花数。
阅读全文