-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPE010.py
More file actions
65 lines (47 loc) · 1.04 KB
/
PE010.py
File metadata and controls
65 lines (47 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python
# -*coding:UTF-8-*-
"""
@Project hello_world
@File PE010.py
@Author Haosen Luo
@Date 2025/1/10 23:49
质数求和
所有小于10的质数的和是 2 + 3 + 5 + 7 = 17。
求所有小于两百万的质数的和。
"""
import numpy as np
import math
def is_prime(number):
if number < 2:
return False
if number == 2:
return True
if number % 2 == 0:
return False
for i in range(3, int(math.sqrt(number)), 2):
if number % i == 0:
return False
return True
# base = 2
# res = 2
#
# number_list = np.arange(3, 2000000, 2)
#
# while base < 2000000:
# for n in number_list:
# if is_prime(n):
# res += n
# base += n
#
# print(res, n)
# 143064094790 error
def asd(n):
pick = [1] * (n + 1)
pick[0] = pick[1] = 0
for i in range(n + 1):
if pick[i] == 0:
continue
for j in range(i + i, n + 1, i):
pick[j] = 0
return [x for x in range(n + 1) if pick[x]]
print(sum(asd(2000000)))