Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125703
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Python/Ruby

2011-07-02 13:38:02

# !/usr/bin/python
from math import sqrt
from time import time

def Find_Prime_Nu(num):
    Prime_Nu=[2]
    for i in range(3,num+1,2):
        Evolution_Num = int(i**(0.5))
        for j in Prime_Nu:
            if j > Evolution_Num:
                Prime_Nu.append(i)
                break
            if i % j == 0:
                break
    return Prime_Nu

def prime(max):
    p = [2,3]
    for i in range(5, max + 1, 2):
        is_prime = True
        l = int(sqrt(i))
        for j in p:
            if j > l:
                break
            if i % j == 0:
                is_prime = False
                break
        if is_prime:
            p.append(i)
    return p

def bench(max):
    t0=time()
    Find_Prime_Nu(max)                
    t1=time()
    prime(max)
    t2=time()
    print max,t1-t0,t2-t1

bench(1000)
print "================"
bench(100000)
print "================="
bench(1000000)


减少赋值对比次数很明显能提高效率
阅读(919) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~