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.顺带提一下,最高效的办法是方法二。可以自行测试。

 import time
#sqrt是开方
from math import sqrt def check1(prime):
if prime == 1:
return False
for i in range(2, int(sqrt(prime)) + 1):
if prime % i == 0:#能被除尽就不是素数
return False
return True #main1
# 在一般领域,对正整数n,如果用2到 之间的所有整数去除,均无法整除,则n为质数。
def main1(num):
prime = 0
x = 0
while x < num:
prime += 1
if check1(prime):
x += 1
return prime def check2(prime):
i = 5
if prime == 2 or prime == 3:
return True
if prime % 6 != 1 and prime % 6 != 5:
return False
while i <= sqrt(prime):
if prime % i == 0 or prime % (i + 2) == 0:#孪生素数 自行百度
return False
i += 6
return True #main2参考链接
#http://blog.csdn.net/huang_miao_xin/article/details/51331710 def main2(num):
prime = 1
x = 0
while x < num:
prime += 1
if check2(prime):
x += 1
return prime if __name__ == '__main__':
#给出两种解决的方法
start_time1 = time.time()
print(main1(10001))
print(time.time() - start_time1)
start_time2 = time.time()
print(main2(10001))
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. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(二)用户接口层之RtspClient类及其构造函数

    RtspClient类是myRTSPClient函数库所有特性集中实现的地方. 主要为用户提供: 1. RTSP协议通信接口函数,如DoOPTIONS(): 2. RTSP账号.密码设置函数,如Set ...

  2. 【Eclipse】给web项目打war包

    项目右键->export->war file -> Destination ->finish 第二步 保存

  3. 【Ubuntu 16】源码包安装Apache Httpd

    源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...

  4. 线性代数-矩阵-【1】矩阵汇总 C和C++的实现

    矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...

  5. 挖个坑,写一个Spring+SpringMVC+Mybatis的项目

    想挖个坑督促自己练技术,有时候想到一个项目,大概想了一些要实现的功能,怎么实现.现在觉得自己差不多能完成QQ空间的主要功能了.准备立个牌坊,写一个类似功能的网站.并且把进度放到这里来. 初步计划实现以 ...

  6. ORA-06575:程序包或函数处于无效状态

    今天一个朋友问我下面这段sql语句的问题,我发现了他竟然把程序员的编程思想带入了oracle,虽然是错误的,但也是很经典的错误啊. create or replace package p_view_p ...

  7. selenium之handle学习 多窗口、句柄

    我们拿松勤软件测试的网站做例子: 直接获取all_handle这个list数据里面第二个handle的值:all_handle[1] # coding:utf-8 from selenium impo ...

  8. django模板(过滤器)

    -------------------django内建的过滤器-------------------1.add 使用形式为:{{ value | add: "2"}} 意义:将va ...

  9. JVM和java应用服务器调优

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt413 对于调优这个事情来说,一般就是三个过程: 性能监控:问题没有发生,你并 ...

  10. 交换机的Ethernet Channel

    端口聚合也叫做以太通道(ethernet channel),主要用于交换机之间连接.由于两个交换机之间有多条冗余链路的时候,STP会将其中的几条链路关闭,只保留一条,这样可以避免二层的环 路产生.但是 ...