输入一个正整数x,求100以上、x以内的所有自幂数并输出。所谓自幂数,是指一个n位自然数若等于自身各个数位上数字的n次幂之和,则称此数为自幂数。 【输入形式】 一个正整数x 【输出形式】 100以上、x以内的所有自幂数,用空格分隔;若范围内没有自幂数,输出:none;若输入的x小于100,输出:error。
时间: 2023-06-20 13:06:12 浏览: 125
以下是Python的代码实现:
```python
x = int(input())
if x < 100:
print("error")
else:
res = []
for num in range(100, x+1):
digits = str(num)
n = len(digits)
total = sum(int(digit)**n for digit in digits)
if total == num:
res.append(str(num))
if res:
print(" ".join(res))
else:
print("none")
```
代码的思路是先判断输入的数是否小于100,如果是则输出错误信息。如果输入的数大于等于100,则遍历从100到输入的数之间的所有自然数。对于每个数,先将其转换为字符串,然后计算每个数字的n次幂之和,最后判断该和是否等于该数本身。如果是,则将该数添加到结果列表中。遍历结束后,判断结果列表是否为空,如果不为空,则将其中的数用空格连接起来输出,否则输出“none”。
阅读全文