自学Python:求完数

作者: 小强聊成长 | 来源:发表于2021-12-08 13:34 被阅读0次

    先说什么是完数?

    如果一个数等于它的因子(因子就是所有可以整除这个数的数)之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。那如果要求某一范围内完数的个数。要如何实现呢?

    下面直接上代码:

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

    if __name__=="__main__":

        n = int(input("请输入所选范围上限: "))

        i = 2         # 变量 i 控制选定数的范围

        while i <= n:

            s = 0       # s记录累加因子之和,保证每次循环时s的初值为0

            j = 1        # j 控制除数范围

            for j in range(i):

                if j != 0 and i % j == 0:      # 判断 j 是不是 i 的因子

                    s += j        # 因子和

            if s == i:       # 判断因子之和是否和原数相等

                print("2到%d之间的完数:%d" %(n, i))

            i += 1

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

    执行结果如下:

    请输入所选范围上限: 800

    2到800之间的完数:6

    2到800之间的完数:28

    2到800之间的完数:496

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:求完数

        本文链接:https://www.haomeiwen.com/subject/akgpxrtx.html