自学Python:寻找亲密数

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

    所谓亲密数就是如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。那么请求出5000以内的全部亲密数。

    下面直接上代码:

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

    if __name__=="__main__":

        print("5000以内的全部亲密数为:")

        for a in range(1, 5000):      # 穷举5000以内的全部整数

            b = 0

            i = 1

            while i <= (a//2):  # 计算数 a 的各因子,将各因子之和存放到b中

                if a % i == 0:

                    b += i

                i += 1

            n = 0    # 计算b的各因子,将各因子之和存于 n

            j = 1

            while j <= (b//2):

                if b % j == 0:

                    n += j

                j += 1

            if n == a and a < b:

                print("%4d -- %4d \t" %(a, b))

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

    执行结果如下:

    5000以内的全部亲密数为:

    220 --  284

    1184 -- 1210

    2620 -- 2924

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:寻找亲密数

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