AimerNeige ha revisionato questo gist . Vai alla revisione
2 files changed, 30 insertions
main.go(file creato)
@@ -0,0 +1,6 @@ | |||
1 | + | func main() { | |
2 | + | primeChan := primes() | |
3 | + | for i := 0; i < 10; i++ { | |
4 | + | fmt.Println(<-primeChan) | |
5 | + | } | |
6 | + | } |
prime.go(file creato)
@@ -0,0 +1,24 @@ | |||
1 | + | func primes() chan int { | |
2 | + | ch := make(chan int) | |
3 | + | go func() { | |
4 | + | defer close(ch) | |
5 | + | primes := []int{} | |
6 | + | for i := 2; ; i++ { | |
7 | + | isPrime := true | |
8 | + | for _, p := range primes { | |
9 | + | if p*p > i { | |
10 | + | break | |
11 | + | } | |
12 | + | if i%p == 0 { | |
13 | + | isPrime = false | |
14 | + | break | |
15 | + | } | |
16 | + | } | |
17 | + | if isPrime { | |
18 | + | primes = append(primes, i) | |
19 | + | ch <- i | |
20 | + | } | |
21 | + | } | |
22 | + | }() | |
23 | + | return ch | |
24 | + | } |
Più nuovi
Più vecchi