親和數(shù)嘗試一二

最近看數(shù)學(xué)家故事,竟然看到費(fèi)馬其中一個(gè)貢獻(xiàn)是找到了第二對(duì)親和數(shù)。 其實(shí)蠻厲害的,在沒有強(qiáng)大計(jì)算機(jī)能力的年代,憑計(jì)算能找出另一對(duì)。

出于對(duì)他們的尊重,我也嘗試用程序?qū)憘€(gè),看能計(jì)算出多少。以下是簡(jiǎn)單的程序:

def middle(num):
    '''
    取'中位數(shù)'
    :param num:
    :return:
    '''
    if num % 2 == 0:
        return (num-2) // 2
    else:
        return (num-1) // 2


def cal_divisor(num):
    '''
    計(jì)算約數(shù)
    :param num:
    :return:
    '''
    mid_num = middle(num)
    res = []
    for i in range(1, mid_num+1):
        if num % i == 0 and i not in res:
            res.append(i)
            res.append(num//i)

    return res


def cal_amicable_numbers(n):
    '''
    計(jì)算親和數(shù)
    :param n:
    :return:
    '''
    res = {}
    for key in range(4, n+1):
        res_list = cal_divisor(key)
        if res_list and len(res_list) > 2:
            res_list.remove(max(res_list))
            amicable_number_sum = sum(res_list)
            if amicable_number_sum in res and res.get(amicable_number_sum) == key:
                print("amicable_numbers:%s and %d" % (amicable_number_sum, key))
            else:
                res.update({key: amicable_number_sum})


cal_amicable_numbers(500000000)

結(jié)果到后面真的很慢很慢,需要對(duì)這些數(shù)據(jù)竟然研究,觀察,以下是部分這些數(shù)據(jù),程序跑了幾個(gè)小時(shí),依舊沒有結(jié)束

amicable_numbers:220 and 284
amicable_numbers:1184 and 1210
amicable_numbers:2620 and 2924
amicable_numbers:5020 and 5564
amicable_numbers:6232 and 6368
amicable_numbers:10744 and 10856
amicable_numbers:12285 and 14595
amicable_numbers:17296 and 18416
amicable_numbers:66928 and 66992
amicable_numbers:67095 and 71145
amicable_numbers:63020 and 76084
amicable_numbers:69615 and 87633
amicable_numbers:79750 and 88730
amicable_numbers:122368 and 123152
amicable_numbers:100485 and 124155
amicable_numbers:122265 and 139815
amicable_numbers:141664 and 153176
amicable_numbers:142310 and 168730
amicable_numbers:171856 and 176336
amicable_numbers:176272 and 180848
amicable_numbers:196724 and 202444
amicable_numbers:185368 and 203432
amicable_numbers:280540 and 365084
amicable_numbers:308620 and 389924
amicable_numbers:356408 and 399592
amicable_numbers:319550 and 430402
amicable_numbers:437456 and 455344
amicable_numbers:469028 and 486178
amicable_numbers:503056 and 514736
amicable_numbers:522405 and 525915
amicable_numbers:643336 and 652664
amicable_numbers:600392 and 669688
amicable_numbers:609928 and 686072
amicable_numbers:624184 and 691256
amicable_numbers:635624 and 712216
amicable_numbers:667964 and 783556
amicable_numbers:726104 and 796696
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • AWK - 行文本處理工具 原理: 逐行處理文本數(shù)據(jù)語法: awk 'pattern + {action}'...
    mualex閱讀 211評(píng)論 0 0
  • 你站在八月的風(fēng)中癡人說夢(mèng) 直到月夜烙下一朵紫薇花痕 烏云的魅影拉黑玫瑰的綠衣 沉悶的雷聲敲醒睡蓮的腦袋 你落在八月...
    戈小淺閱讀 532評(píng)論 2 8
  • 情緒 如果情緒不好,就很容易造成拖延。比如昨天上午買過年回家的火車票,八點(diǎn)和十點(diǎn)兩次都沒有買到,自己的情緒就有點(diǎn)低...
    思考者01閱讀 187評(píng)論 0 0
  • 是誰家思春的姑娘躲在山間露出一只眼睛? 誘惑著我的意識(shí)滿山找尋 我發(fā)誓要將她親手抓住 把她裝進(jìn)我的口袋 如果可以,...
    之亦夫閱讀 437評(píng)論 0 2
  • 考了三次,國(guó)家二級(jí)計(jì)算機(jī)考試還是掛了。查到分?jǐn)?shù)的那一刻,我真的特別沮喪,我很想大哭一場(chǎng),淚水在眼眶里打轉(zhuǎn),但我還是...
    娜娜宅女季閱讀 258評(píng)論 1 0

友情鏈接更多精彩內(nèi)容