0.题目如下:

  By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

  What is the 10 001st prime number?

1.先理解什么是素数:

  质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

2.怎么判断是否是素数:

  方法一:在一般领域,对正整数n,如果用2到  之间的所有整数去除,均无法整除,则n为质数。

  方法二:1.解释一下代码第29行,在6的倍数两侧可能存在着素数,如:

          2 3 5 (6) 7 11 (12) 13 17 (18) 19 23 (24) 29 (30) 31 (36) 37 ......

         注意:在6的倍数两侧只是可能存在素数,不在6的倍数两侧就一定不是素数。

       2.方法二剩下的代码就是孪生素数的问题,自行百度吧

3.顺带提一下,最高效的办法是方法二。可以自行测试。

  1. import time
  2. #sqrt是开方
  3. from math import sqrt
  4.  
  5. def check1(prime):
  6. if prime == 1:
  7. return False
  8. for i in range(2, int(sqrt(prime)) + 1):
  9. if prime % i == 0:#能被除尽就不是素数
  10. return False
  11. return True
  12.  
  13. #main1
  14. # 在一般领域,对正整数n,如果用2到 之间的所有整数去除,均无法整除,则n为质数。
  15. def main1(num):
  16. prime = 0
  17. x = 0
  18. while x < num:
  19. prime += 1
  20. if check1(prime):
  21. x += 1
  22. return prime
  23.  
  24. def check2(prime):
  25. i = 5
  26. if prime == 2 or prime == 3:
  27. return True
  28. if prime % 6 != 1 and prime % 6 != 5:
  29. return False
  30. while i <= sqrt(prime):
  31. if prime % i == 0 or prime % (i + 2) == 0:#孪生素数 自行百度
  32. return False
  33. i += 6
  34. return True
  35.  
  36. #main2参考链接
  37. #http://blog.csdn.net/huang_miao_xin/article/details/51331710
  38.  
  39. def main2(num):
  40. prime = 1
  41. x = 0
  42. while x < num:
  43. prime += 1
  44. if check2(prime):
  45. x += 1
  46. return prime
  47.  
  48. if __name__ == '__main__':
  49. #给出两种解决的方法
  50. start_time1 = time.time()
  51. print(main1(10001))
  52. print(time.time() - start_time1)
  53. start_time2 = time.time()
  54. print(main2(10001))
  55. print(time.time() - start_time2)

来自projecteuler.net网站的练习题1的更多相关文章

  1. 来自projecteuler.net网站的练习题2

    0.题目如下: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By st ...

  2. [翻译]How to Find a Solution ( 如何找到问题的答案,来自Top Coder 网站)

    原文链接: https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/ ...

  3. struts2集成fckeditor(来自大型门户网站是这样练成的一书)

  4. [译]MVC网站教程(二):异常管理

    介绍 “MVC网站教程”系列的目的是教你如何使用 ASP.NET MVC 创建一个基本的.可扩展的网站. 1)   MVC网站教程(一):多语言网站框架 2)   MVC网站教程(二):异常管理 3) ...

  5. 关注经典:CSS Awards 获奖网站作品赏析《第一季》

    每天都有很多新的网站推出,其中不乏一些设计极其优秀的作品.这个系列的文章,我为大家挑选了2012年赢得 CSS Awards 大奖的50个最佳网站.这些鼓舞人心的网站作品代表了网页设计的最高水平,相信 ...

  6. 经典算法和OJ网站(开发者必备-转)

    一. Online Judge简介: Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交程序多种程序(如C.C++.Pascal)源代码,系统对源代码进行编译和执行,并通过 ...

  7. 精通Web Analytics 2.0 (3) 第一章:网站分析的新奇世界

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第一章:Web Analytics 2.0的新奇世界 多年以来,我们很清楚的知道,网站分析能够真正的改革网络上业务的完成方式.那 ...

  8. l来自wentao:项目加入缓存(redis),实时调试时用 -----可视化缓存,flushdb

    下文来自segmentfault,网站:一个交流网站:https://segmentfault.com/ 在做一个项目时如果加入缓存(例如redis),我如何进行实时调试呢? 缓存 高并发 架构 gz ...

  9. 如何防止ASP.NET网站遭受CSRF的攻击

    转载地址: http://www.cnblogs.com/shanyou/p/5038794.html?hmsr=toutiao.io&utm_medium=toutiao.io&ut ...

随机推荐

  1. java版飞机大战 实战项目详细步骤.md

    [toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...

  2. MySQL 参数autoReconnect=true 解决8小时连接失效(转)

    即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsExc ...

  3. 【Mybatis】配置文件加载属性

    Mybatis将按照下面的顺序来加载属性: 1.在properties文本定义的属性首先被读取, 2.然后读取Mybatis的配置文件sqlConfig.xml配置文件中properties标签属性 ...

  4. codeforces 466d Increase Sequence

    D. Increase Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. Ubuntu 环境 samba的安装&配置

    一.samba的安装: sudo apt-get install samba sudo apt-get install smbfs sudo apt-get install cifs-utils (新 ...

  6. HTML图像

    HTML 图像- 图像标签( <img>)和源属性(Src) 在 HTML 中,图像由<img> 标签定义. <img> 是空标签,意思是说,它只包含属性,并且没有 ...

  7. NPOI office 组件资料汇总 (excel, word)

    POI 是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 的文件,支持的文件格式包括xls, doc, ppt等. NPOI 是POI的.net 版本. 最新 ...

  8. ScrollView嵌套ListView只显示一行

    错误描述 ScrollView嵌套ListView中导致ListView高度计算不正确,只显示一行. 解决方法 重写ListView的onMeasure方法,代码如下. @Override publi ...

  9. C# 异步编程2 EAP 异步程序开发

    在前面一篇博文记录了C# APM异步编程的知识,今天再来分享一下EAP(基于事件的异步编程模式)异步编程的知识.后面会继续奉上TPL任务并行库的知识,喜欢的朋友请持续关注哦. EAP异步编程算是C#对 ...

  10. Linux安装解压缩版jdk

    #解压到指定目录 tar zxvf ./jdk-7-Linux-i586.tar.gz  -C /usr/lib/jvm 配置环境变量 #vi  /etc/profile 编辑文件,在最后添加: ex ...