色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 求親密數

錢浩然2年前10瀏覽0評論

親密數指兩個數中,其中一個數的所有真因數之和等于另一個數,且反過來也成立。

例如,220和284是一對親密數,因為:

真因數之和:
220 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
284 = 1 + 2 + 4 + 71 + 142 = 220

python可以通過循環遍歷來求解親密數。首先,我們可以寫一個函數來計算給定數num的所有真因數之和。

def divisors_sum(num):
divisors = [1]
for i in range(2, int(num**(1/2))+1):
if num % i == 0:
divisors.append(i)
if i != num//i:
divisors.append(num//i)
return sum(divisors)

然后,我們可以使用雙重循環來查找一對親密數。

for i in range(2, 10000):
div_sum_i = divisors_sum(i)
for j in range(i+1, 10000):
if div_sum_i == j and divisors_sum(j) == i:
print(i, j)

代碼中的第一個循環從2到10000遍歷每個數,第二個循環從i+1到10000遍歷每個比i大的數。對于每個數對(i, j),我們都計算它們的真因數之和,并檢查它們是否互相等于對方。如果是,就打印出這對親密數。

運行以上代碼,輸出如下:

220 284
1184 1210
2620 2924
5020 5564
6232 6368

這里只列出了前5對親密數,實際上還有很多對。