python基础----求水仙花数


水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身。
如:153 = 1**3 + 5 ** 3 + 3 ** 3

def is_narc_num(n):
    # if n <100 or n > 999:
    #     return False
    # n = str(n)
    # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n):
    #     return True
    # else:
    #     return False
    """
        判断任意一个数字,是否水仙花数(不管是几位数)
    :param n:
    :return:
    """
    n = str(n)
    length = len(n)
    sum = 0
    for i in range(length):
        sum += int(n[i])**3
    if sum == int(n):
        return True
    return False

def list_narc_num(start,end):
    list_narc = []
    for i in range(start,end+1):
        if is_narc_num(i):
            list_narc.append(i)
    return list_narc

narc_num = list_narc_num(1,50000)
print(narc_num)

相关推荐