1. 程式人生 > >【Python練習】尋找n以內的親密數對

【Python練習】尋找n以內的親密數對

題目內容:

對於兩個不同的整數A和B,如果整數A的全部因子(包括1,不包括A本身)之和等於B;且整數B的全部因子(包括1,不包括B本身)之和等於A,則將A和B稱為親密數。自定義函式fac(x)計算x包括1但不包括本身的所有因子和並返回。從鍵盤輸入整數n,呼叫fac()函式尋找n以內的親密數並輸出。注意每個親密數對只輸出一次,小的在前大的在後,例如220-284。

輸入格式:

按提示用input()函式輸入

輸出格式:

按樣例形式,可使用形如“print("{}-{}".format(引數1, 引數2))”輸出語句進行親密數對的輸出

輸入樣例:

500

輸出樣例:

220-284

def fac(x):
    for a in range(2,x):
        b = 0
        for i in range(1,a):
            if a % i == 0:
                b += i
                
        r = 0       
        for j in range(1,b):
            if b % j == 0:
                r += j


        if r == a and a < b:
            print("{}-{}".format(a,b))
     
      
           

n = int(input())
fac(n)