自幂数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。例如153就是一个自幂数(当n=3时也称为水仙花数),因为153=1^3+5^3+3^3。请按下面的运行结果找出用户输入范围内的所有自幂数。
时间: 2024-09-29 15:08:25 浏览: 13
在Python中,我们可以编写一个程序来寻找指定范围内(由用户输入)的自幂数。这个程序可以通过迭代每个可能的三位或四位数,然后检查其各个位数的立方和是否等于该数本身来实现。
以下是一个简单的Python函数,用于找出并打印给定范围内所有的自幂数:
```python
def find_self_power_numbers(start, end):
for num in range(start, end + 1):
# 对于每一位进行计算
digits = [int(digit) for digit in str(num)]
sum_of_powers = sum([digit ** len(str(num)) for digit in digits])
if num == sum_of_powers:
print(num)
# 获取用户输入的范围
start = int(input("请输入起始范围(至少三位数): "))
end = int(input("请输入结束范围(可选,如果不输入则默认为1000): " or 1000))
# 如果用户没有输入结束值,则使用默认值
if not end:
end = start
find_self_power_numbers(start, end)
```
在这个代码中,我们首先获取用户的起始和结束范围,然后遍历每个数,对每个数分解为一个个数字,计算这些数字的`len(str(num))`次方和,如果和等于原数,就将其打印出来。