慕課-用Python玩轉數據-2編程題答案


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

def fac(num):
    
    for j in range(2,num+1):
            a = 0
            b = 0
            for i in range(1,j):
                if j % i == 0:
                    a = a + i
            for c in range(1,a):
                if a % c == 0:
                    b += c
            if j == b and b != a:
                if j < a:
                    print("{0}-{1}".format(j,a))

2、找第n個默尼森數。P是素數且M也是素數,並且滿足等式M=2^P-1,則稱M為默尼森數。例如,P=5,M=2^P-1=31,5和31都是素數,因此31是默尼森數

def prime(num):
    if num == 1:
        print(num)
    else:
        for i in range(2,num):
            if num % i == 0:
                break
        else:
            return 1
                
def monisen(no):
    a = 2
    b = 1
    while b <= no:
        if prime(a):
            c = 2 ** a - 1
            if prime(c):
                b += 1
        a += 1      
    print(c)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM