第10题:
经过对上下界,步长的优化,和采用填充法(空间换时间?),此算法只需要0.76秒.
求2百万以内的质数的和.
- start = time.time()
- s = 2
- value = 3
- print s,value,lenght
- marked = [1] * lenght
- while value < lenght:
- if marked[value]:
- s += value
- marked[value] = 0
- if value < t0:
- for i in xrange(value**2,lenght,value*2):
- marked[i] = 0 # 小于value**2的质数次倍数,已经在前面处理较小质数时打标为0了
- value += 2
- # 142913828922
- print s,value,i,
- print time.time()-start,'third'