来自projecteuler.net网站的练习题1
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的更多相关文章
- 来自projecteuler.net网站的练习题2
0.题目如下: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By st ...
- [翻译]How to Find a Solution ( 如何找到问题的答案,来自Top Coder 网站)
原文链接: https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/ ...
- struts2集成fckeditor(来自大型门户网站是这样练成的一书)
- [译]MVC网站教程(二):异常管理
介绍 “MVC网站教程”系列的目的是教你如何使用 ASP.NET MVC 创建一个基本的.可扩展的网站. 1) MVC网站教程(一):多语言网站框架 2) MVC网站教程(二):异常管理 3) ...
- 关注经典:CSS Awards 获奖网站作品赏析《第一季》
每天都有很多新的网站推出,其中不乏一些设计极其优秀的作品.这个系列的文章,我为大家挑选了2012年赢得 CSS Awards 大奖的50个最佳网站.这些鼓舞人心的网站作品代表了网页设计的最高水平,相信 ...
- 经典算法和OJ网站(开发者必备-转)
一. Online Judge简介: Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交程序多种程序(如C.C++.Pascal)源代码,系统对源代码进行编译和执行,并通过 ...
- 精通Web Analytics 2.0 (3) 第一章:网站分析的新奇世界
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第一章:Web Analytics 2.0的新奇世界 多年以来,我们很清楚的知道,网站分析能够真正的改革网络上业务的完成方式.那 ...
- l来自wentao:项目加入缓存(redis),实时调试时用 -----可视化缓存,flushdb
下文来自segmentfault,网站:一个交流网站:https://segmentfault.com/ 在做一个项目时如果加入缓存(例如redis),我如何进行实时调试呢? 缓存 高并发 架构 gz ...
- 如何防止ASP.NET网站遭受CSRF的攻击
转载地址: http://www.cnblogs.com/shanyou/p/5038794.html?hmsr=toutiao.io&utm_medium=toutiao.io&ut ...
随机推荐
- CASE WHEN 及 SELECT CASE WHEN的用法(转)
Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...
- java中Object转String
Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toStri ...
- A* a=new B ,会不会产生内存泄露了,露了B-A的部分?
A* a=new B ,delete a;会不会产生内存泄露了,露了B-A的部分.其中B为A的子类 析构函数在下边3种情况时被调用:1.对象生命周期结束,被销毁时:2.delete指向对象的指针时,或 ...
- 8.20.1 图形化:弹窗JOptionPane
最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了一下. 1.1 showMessageDialog 显示一个带有OK 按钮的模 ...
- Codeforces Round #429 (Div. 2) 补题
A. Generous Kefa 题意:n个气球分给k个人,问每个人能否拿到的气球都不一样 解法:显然当某种气球的个数大于K的话,就GG了. #include <bits/stdc++.h> ...
- web前端笔记整理---CSS
一 Css 文件 Css: 美化HTML的 4种选择器: 元素选择 类选择 ID选择 伪类选择 常用的布局方案 1 写在什么位置能好用. 1.1 元素里面 优先级是最高的 1.2 元素外,文件内 ...
- windows 计划任务执行python脚本
1. 查找并打开Windows计划任务 2. 创建任务 3. 输入名称 4. 通过触发器设置运行时间或周期 5. 通过操作,设置运行的脚本 a. 操作选择'启动程序' b. 程序或脚本选择 pyth ...
- JavaScript 30 - 2 学习笔记
学习JavaScirpt30的笔记! 有意思! 2-------> CSS clock 效果是这样的.... 这是改良过后的 版本.... 话不多说,直接来看代码. 首先是html部分 &l ...
- SpringMVC + Mybatis bug调试 SQL正确,查数据库却返回NULL
今天碰到个bug,有点意思 背景是SpringMVC + Mybatis的一个项目,mapper文件里写了一条sql 大概相当于 select a from tableA where b = &quo ...
- Android Studio开发常见问题
Compilation failed; see the compiler error output for details 错误描述 解决方法 原因:文件编码问题.进入项目根目录,在命令提示符下执行以 ...