|
发表于 2020-4-6 17:15:43
|
显示全部楼层
本帖最后由 zltzlt 于 2020-4-6 17:17 编辑
不知道这个够不够快
- import time
- def is_prime(n):
- return True if n in {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67} else all(
- False for p in {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67} if
- pow(p, n - 1, n) != 1)
- def prime_seq():
- yield 2
- yield 3
- i = 3
- while True:
- i += 2
- if is_prime(i):
- yield i
- sum_of_primes = 0
- # 这里用一个计时器简单记录跑代码的时间
- start_time = time.time()
- for each in prime_seq():
- if each < 2000000:
- sum_of_primes += each
- else:
- print(sum_of_primes)
- end_time = time.time()
- print('Run time: %.4f' % (end_time - start_time))
- break
复制代码 |
|