自学Python:求阿姆斯特朗数

阿姆斯特朗数是指一个整数等于其各个数字的立方和(亦称为自恋性数)。如153=1^3+5^3+3^3就是一个“阿姆斯特朗数”。“阿姆斯特朗数”与“水仙花数”的不同在于,阿姆斯特朗数并没有规定几位数,从两者的定义来看,“水仙花数”可以看作是“阿姆斯特朗数”的一个子集。对于这类问题的算法与“水仙花数”类似,需要把每一位分离出来,然后比较其立方和与原数是否相等。试编程求5000以内的所有“阿姆斯特朗数”。

下面直接上代码:

########################

if __name__ == "__main__":

    a = [0, 0, 0]      # 列表a用来存储被拆分的数的个位、十位和百位

    print("1000以内的阿姆斯特朗数:")

    for i in range(2, 1000):

        t = 0

        k = i

        # 按从低位到高位的顺序拆分数

        while k:

            a[t] = k % 10

            k = k // 10

            t += 1

        sum = a[0]**3 + a[1]**3 + a[2]**3

        if i == sum:

            print("%d \t " %i, end=" ")

########################

执行结果如下:

1000以内的阿姆斯特朗数:

153   370   371   407

________________END______________

你可能感兴趣的:(自学Python:求阿姆斯特朗数)