DeepCamp_假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:

Problem

 假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:【此题仅一个正确选项】

import math

 

def sieve(size):

    sieve = [True] * size

    sieve[0] = False

    sieve[1] = False

 

    for i in range(2, int(math.sqrt(size)) + 1):

        k = i * 2

        while k < size:

            sieve[k] = False

            k += i

 

    return sum(1 for x in sieve if x)

 

print(sieve(100000000000))


最近参加了创新工场暑期训练营的笔试,然后这道题目的解题思路很新颖,当时没做出来,我这里把我现在的解法写出来,如果直接运行程序的话,一般的电脑算不出来,然后这个测试是可以查阅资料的,代码主要是找1000亿以内的质数,所以用搜索引擎就对了,我感觉没有啥高效的算法能够短时间求解的。


画红色方框的就是答案了。

参考文献

[1].How Many Primes Are There?.https://primes.utm.edu/howmany.html

[2].Sieve of Eratosthenes.https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

[3].试题让电脑崩溃?感受下 DEECAMP 笔试的设计思路.http://www.anyv.net/index.php/article-2216990

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值