当一个n位数等于它各个数位上的m次方之和时,我们称其为自幂数。其中n和m均为自然数,例如153是一个自幂数,因为 $1^3 + 5^3 + 3^3 = 153$。
下面是Python中实现自幂数的示例代码及其完整攻略:
代码实现
if __name__ == '__main__':
# 寻找1-10000之间的自幂数
for num in range(1, 10000):
str_num = str(num) # 将数字转换为字符串
n = len(str_num)
res = 0
for i in range(n):
res += int(str_num[i]) ** n
if res == num:
print(num)
代码解释
-
首先需要明确寻找的范围,在这里我们要寻找1-10000之间的自幂数,因此使用了range函数获取到这个范围。
-
将数字转换为字符串之后,获取字符串长度n,依次枚举各位数字,计算各位数字的n次方之和。
-
判断是否与原数字相等,如果相等,就输出它。
示例说明
示例1
输入:无
输出:
1
2
3
4
5
6
7
8
9
153
370
371
407
示例2
输入:无
输出:
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
在以上示例中,我们分别寻找1-10000以及1-100000之间的自幂数,并将它们输出。第一个示例输出1-407这些自幂数,第二个示例输出更多的自幂数,包括1634、8208、9474等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现自幂数的示例代码 - Python技术站