# 水仙花数是指一个 n 位数(n≥3 n<1000),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
# 求1000以内所有的水仙花数
# 自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
# 步骤
# 1.获取一个输入数字n》=3
# 2.得出输入n有几位数
# 3.while循环自增到n,
# 4.求出每个数字的万/百/十/个位的数字,用整除(//)10000/1000/100/10方法
# 5.得出每个数字后 if count ==a**n+b**n+c**n 如果为true则print(num)
n_count=int(input("请输入一个数字:"))
i_count=3;
while i_count<n_count :
several=len(str(i_count))
several_j=several-1
num0=i_count
numstr=0
for i in range(several_j,-1,-1):
num1=num0//10**i
num0=num0-num1*(10**i)
numstr+=num1**several
if i_count==numstr:
print(numstr,'是自幂数')
i_count+=1
刚入门python 还有待提升,执行速度太慢了