python 求自幂数
时间: 2023-11-15 17:02:19 浏览: 132
Python可以通过计算每个数字的幂次和来判断一个数是否为自幂数。以下是一个计算任意范围自幂数的Python函数:
```
def number_self_power_y(m=100, n=1000):
if type(m) is int and type(n) is int and 0 <= m < n:
my_range = (x for x in range(m, n))
for num in my_range:
sum = 0
p = len(str(num)) # 幂
a = [int(s) for s in str(num)] # 数
for i in a:
sum += i ** p # 和
if num == sum:
yield num
elif type(m) is not int or type(n) is not int:
raise Exception('参数类型错误')
elif m < 0 or m > n:
raise Exception('参数超出范围')
n = number_self_power_y(0, 10000000)
print([i for i in n])
```
这个函数可以计算任意范围内的自幂数,其中m和n分别为计算范围的起始和结束数字。函数首先判断输入参数是否合法,然后使用一个生成器来生成计算范围内的所有数字。对于每个数字,函数计算其每个数字的幂次和,如果幂次和等于该数字本身,则将该数字加入到结果列表中。最后,函数返回结果列表。
阅读全文