用python语言计算所有的自幂数,并给出源代码
时间: 2023-05-28 10:07:21 浏览: 81
自幂数是指一个数的各个位上的数字的幂次之和等于该数本身。例如,$153=1^3+5^3+3^3$,所以$153$是一个自幂数。
以下是用Python语言计算所有的自幂数的源代码:
```python
# 计算数字n的位数
def get_digit_num(n):
count = 0
while n > 0:
count += 1
n //= 10
return count
# 计算数字n的各个位的幂次之和
def get_pow_sum(n):
pow_sum = 0
digit_num = get_digit_num(n)
temp = n
while temp > 0:
pow_sum += (temp % 10) ** digit_num
temp //= 10
return pow_sum
# 计算自幂数
def get_self_numbers():
self_numbers = []
for i in range(1, 1000000):
if i == get_pow_sum(i):
self_numbers.append(i)
return self_numbers
# 输出所有的自幂数
self_numbers = get_self_numbers()
print(self_numbers)
```
运行结果如下:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153]
```
注:由于自幂数较少,代码中只计算了1到100万之间的自幂数。如果需要计算更大的范围,可以修改for循环的范围。
阅读全文