美文网首页
亲和数尝试一二

亲和数尝试一二

作者: mugbya | 来源:发表于2018-06-11 17:48 被阅读13次

最近看数学家故事,竟然看到费马其中一个贡献是找到了第二对亲和数。 其实蛮厉害的,在没有强大计算机能力的年代,凭计算能找出另一对。

出于对他们的尊重,我也尝试用程序写个,看能计算出多少。以下是简单的程序:

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


def cal_divisor(num):
    '''
    计算约数
    :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):
    '''
    计算亲和数
    :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)

结果到后面真的很慢很慢,需要对这些数据竟然研究,观察,以下是部分这些数据,程序跑了几个小时,依旧没有结束

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

相关文章

  • 亲和数尝试一二

    最近看数学家故事,竟然看到费马其中一个贡献是找到了第二对亲和数。 其实蛮厉害的,在没有强大计算机能力的年代,凭计算...

  • 建大之夏

    Emmm ... 自己尝试性写下的散文 求大神们指点一二️~️ ️️

  • 橙子心记006:40岁的少女,只能用来赞美貌,不能用来论智商

    最近的综艺《演员请就位》,我几乎是靠着各种自媒体的分享,才略知一二的,从没点开亲看。 我觉得这一二,也就够了。 我...

  • 所谓开挂人生,不过是自律到极致

    1.必要时关掉手机wif和数据连接 下点狠心,尝试关掉手机wif和数据连接,并强迫自己工作学习结束前不要打开,这样...

  • 数据结构入门

    R语言一二章主要讲了安装R和RStudio、数据结构和数据输入(键盘输入、csv文件输入、xlsx文件输入)。 一...

  • 一二!一二!一二……

    “一二!一二!一二……”一个女人在大声的喊着,一群人在随着声音的节奏在用力的拉。这就是我一大早上看到的,都活力满满...

  • 如果你想要尝试

    如果你想尝试,那就全力以赴。否则,就不要开始尝试。 如果你想尝试,那就全力以赴。这将意味着你会失去女朋友 妻子,亲...

  • 从尝试到依赖-亲测有效!

    21天生命故事疗愈日记(10月1日~10月21日),写啊写啊,过了21天休营了,还是不想停下来。到昨天,写了27天...

  • 尝试作小诗一首,请求指点一二

    尝读文章数几篇,无奈不解是何意。 学识浅薄无长进,方到用时生悔心。

  • 让教学更有趣的小尝试

    之前在乡下做小学教师时,学生很喜欢我的课堂,小学一二年级的孩子因为我爱上了语文读课文和数学的计算。 语文课上,我会...

网友评论

      本文标题:亲和数尝试一二

      本文链接:https://www.haomeiwen.com/subject/oviheftx.html