先进算法 求某一范围内的质数

#! prime.py
import time


f = open("sss.txt","w")


def primes(n):
    P = []
    f = []
    for i in range(n + 1):
        if i > 2 and i % 2 == 0:
            f.append(1)
        else:
            f.append(0)


    i = 3
    while i * i <= n:
        if f[i] == 0:
            j = i * i
            while j <= n:
                f[j] = 1
                j += i + i
        i += 2


    P.append(2)
    for i in range(3, n, 2):
        if f[i] == 0:
            P.append(i)


    return P


if __name__ == '__main__':
    start = time.clock()
    n = 10000000
    P = primes(n);
    print("There are %d primes less than %d" % (len(P), n))
    # for i in range(10):
    #  print(P[i])
    print("Time: %f" % (time.clock() - start))
    # for n in range(2,100000):
    #  if isPrime(n):
    #    print("%d is prime"%n)
    # print("%d is "%n + ("prime" if isPrime(n) else "not prime"))
    # print(primes(n),file=f)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值