Python 练习
1. 题目
用户输入位数 n,找出并显示出所有 n 位的自幂数。
2. 分析
自幂数是指一个 n 位正整数,如果它的各位数字的 n 次方的和加起来等于这个数,数学家称这样的数为自幂数。例如,\(1^3+5^3+3^3=153\),153 就是一个 3 位的自幂数,3 位自幂数也称为水仙花数。本程序设 n 的数值为 1~6,当 n 大于 6 时,程序退出。
3. 实例
from functools import reduce
# 自幂数
start = 0
end = 0
n = int(input('请选择自幂数的位数【1,2,3,4,5,6】:'))
while 0 < n < 7:
start = pow(10, n - 1)
end = pow(10, n) - 1
print(n, '位数的自幂数有:')
for k in range(start, end + 1):
if reduce(lambda x, y: x+y, map(lambda z: int(z) ** n, str(k))) == k:
print(k)
n = int(input('\n 请选择自幂数的位数【1,2,3,4,5,6】:'))
else:
print('输入位数不在范围内,程序结束。')