Python基础学习之——while练习——任意输入求自幂数

课时47 练习3 求水仙花数 之升阶自定义输入数字

# 水仙花数是指一个 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 还有待提升,执行速度太慢了

你可能感兴趣的:(python学习,python)