python解決親密數問題,超級簡單。

問題:如果整數 A 的全部因子(包括 1 不包括 A 本身)之和等於 B,B 的全部因子(包括 1 不包括 B 本身)之和等於 A,則稱 AB 是一對親密數,求 3000 以內全部的親密數

 

算法思路:

先求出一個數(假設爲n)的全部因子數之和(假設爲a),如果他(a)的全部因子數之和是他本身(n)的話,它便是親密數,
def yinZi(n):#求n的所有因子之和
    sum=0;
    for i in range(1,n):
        if n%i==0:
            sum+=i
    return sum
for i in range(1,3001):
    a=yinZi(i)#i(A)的全部因子之和,在這裏假設存在親密數b,求b的因子數
    b=yinZi(a)#B的因子之和
    if i==b:#如果A等於B的因子之和,便是親密數
        print(i,a)




如果感覺不錯的話,點個贊哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章