日更成长营自学编程Python

自学Python:寻找亲密数

2021-12-09  本文已影响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______________

上一篇 下一篇

猜你喜欢

热点阅读