project Euler第七题
2011-11-07 10:51
363 查看
上大学的时候买了个手机,上边的游戏都是java做的,所以在还不知道什么是java的时候就想学习java了,但是现在都研一了,还没有怎么学习过java,书倒是看了不少,编程思想都看两边了,可是从没用java做过程序,先是用php做网站,再是用python做网站,以后就用java做project Euler了,聊以慰藉吧。
题目:
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:
算法2:
结果:104743
两个算法基本上是一样的,第二个要比第一个好一点,第一个就是从二开始一个一个的算每个数是不是素数,直到找到第10001个为止。因为除了2以外所有的素数都是奇数,所以就从3开始判断,而且只判断奇数。
最近一直用python,乍一写java还很是不习惯,特别是在语法上,其实还是比较喜欢python,觉得python更优雅一些。下边也给出第二种算法的python版:
题目:
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:
package ten; public class Problem7 { public static void main(String args[]){ int i=2,j=0; for(;j<10001;i++){ Prime prime = new Prime(i); if(prime.is_prime()){ j++; } } System.out.println(i-1); } } class Prime{ public int num; public Prime(int i){ num = i; } public boolean is_prime(){ for(int i=2;i*i<=num;i++){ if(num%i == 0){ return false; } } return true; } }
算法2:
package ten; public class Problem7 { public static void main(String args[]){ int i=3,j=1; for(;j<10001;i+=2){ Prime prime = new Prime(i); if(prime.is_prime()){ j++; } } System.out.println(i-2); } } class Prime{ public int num; public Prime(int i){ num = i; } public boolean is_prime(){ for(int i=2;i*i<=num;i++){ if(num%i == 0){ return false; } } return true; } }
结果:104743
两个算法基本上是一样的,第二个要比第一个好一点,第一个就是从二开始一个一个的算每个数是不是素数,直到找到第10001个为止。因为除了2以外所有的素数都是奇数,所以就从3开始判断,而且只判断奇数。
最近一直用python,乍一写java还很是不习惯,特别是在语法上,其实还是比较喜欢python,觉得python更优雅一些。下边也给出第二种算法的python版:
#!/usr/bin/env python #coding=utf-8 import time def timeit(fn): def decorator(): start = time.time() fn() end = time.time() print end - start return decorator def is_prime(num): i = 2 while i**2<=num: if num%i == 0: return False i += 1 return True @timeit def prime(): j,k = 3,1 while k<10001: if is_prime(j): k += 1 j += 2 print j-2 if __name__ == '__main__': prime()
相关文章推荐
- 【Project Euler】7 第七题
- 【Project Euler】7 第七题
- 第七课:触发监听器和作业任务监听器
- 2015年蓝桥杯省赛C++(A组) 第七题 饮料换购
- 第七课-第二讲 07_02_bash脚本编程之六 使用脚本选项及组合条件测试
- javascript编程起步(第七课)
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Mastering Oracle SQL学习笔记(join句法专题第七部份)
- 湖南省计算机等级考试(二级)题库 第七部分
- Ajax学习摘录之第七部分 在请求和响应中使用 XML
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- project euler 06
- 第七课GUI练练表面功夫
- [Project Euler]加入欧拉 Problem 1
- Java学习第七课...枚举.自动装箱.静态导入...-asp.net关注
- [Project Euler] Problem 4
- [Project Euler] 欧拉项目练习题001(转)
- [Project Euler] Problem 27
- [Project Euler]Problem 9