We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7487fa3 commit ccde9adCopy full SHA for ccde9ad
10pp.go
@@ -0,0 +1,38 @@
1
+package main
2
+
3
+import (
4
+ "./utils"
5
+ "fmt"
6
+ "runtime"
7
+ "sync"
8
+)
9
10
+func main() {
11
+ runtime.GOMAXPROCS(runtime.NumCPU())
12
+ max := 2000000
13
+ primes := findPrimes(max)
14
+ sum := 2
15
+ for i := range primes {
16
+ sum += i
17
+ }
18
+ fmt.Println(sum)
19
+}
20
21
+func findPrimes(max int) <-chan int {
22
+ primes := make(chan int, max)
23
+ var done sync.WaitGroup
24
+ for i := 3; i < max; i += 2 {
25
+ done.Add(1)
26
+ go func(num int) {
27
+ if utils.IsPrime(num) {
28
+ primes <- num
29
30
+ done.Done()
31
+ }(i)
32
33
+ go func() {
34
+ done.Wait()
35
+ close(primes)
36
+ }()
37
+ return primes
38
0 commit comments