美文网首页
愚人节浙大理科学霸征婚题目的粗暴解法

愚人节浙大理科学霸征婚题目的粗暴解法

作者: 少儿创客 | 来源:发表于2019-04-03 17:12 被阅读0次

    没想到胡莹老师愚人节也皮了一把。

    这个问题用Python可以很方便的解决。首先乘积是7140229933,那么我们我们开平方

    >>> import math
    >>> math.sqrt(7140229933)
    84499.8812602716
    >>>
    

    然后到网上下载了素数列表

    素数列表

    记载并保存到名为data的数组中:

    >>> f = open('primes-to-100k.txt','r')
    >>> for line in f.readlines():
    ...     data.append(int(line[:-1]))
    

    然后就很简单了,在素数列表里找到能够被7140229933整除的数字就好了,直接一个列表推导式搞定:

    >>> [x for x in data if 7140229933 % x == 0 ]
    [83777, 85229]
    

    就两个数,自己尝试下就好了,所以微信号是Lin8377785229,然后第2个就更简单了,道理是一样的而且这个数字还比 7140229933小,开平方:

    >>> b=6541367000
    >>>
    >>> c = math.sqrt(b)
    >>> c
    80878.71784344755
    

    那么直接用相同的方法搞定就是了,只要在素数列表data中的两个数字的乘积整除1000以后是6541367就好了,当然这肯定是最暴力的方法了:

    >>> [x*y for x in data for y in data if x*y//1000==6541367]
    [6541367489, 6541367771, 6541367771, 6541367489]
    

    然后去刷了个碗,结果出来了,虽然很暴力,而且第2个题目的答案不唯一,小米15.6 pro笔记本,就是这么优秀。

    相关文章

      网友评论

          本文标题:愚人节浙大理科学霸征婚题目的粗暴解法

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