阿姆斯特朗数、水仙花数

概念解析

阿姆斯特朗数。

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。
例如1^3 + 5^3 + 3^3 = 153
以下代码用于实现输出 1 到 100000 之间的阿姆斯特朗数:

for i in range(1,100000):
    g = i % 10
    s = i // 10 % 10
    b = i // 100 % 10
    q = i // 1000 % 10
    w = i // 10000 % 10
    n = len(str(i))
    num = g ** n + s ** n + b ** n + q ** n + w ** n
    if num == i:
        print(i)
运行结果

阿姆斯特朗数、水仙花数_第1张图片

水仙花数

当n=3时,阿姆斯特朗数又称水仙花数,特指一种三位数,其各个数之立方和等于该数。
水仙花数共有4个,分别为:153、370、371、407。

for i in range(100,1000):
    g = i % 10
    b = i // 100
    s = (i - g - b * 100) // 10
    if g ** 3 + s ** 3 + b ** 3 == i:
        print(i)
运行结果

阿姆斯特朗数、水仙花数_第2张图片
愿您学到更多的知识,感悟更多逻辑的奥妙!

你可能感兴趣的:(数学工具类,Python)