LEFT | RIGHT |
(no file at all) | |
1 // $G $D/$F.go && $L $F.$A && ./$A.out | 1 // run |
2 | 2 |
3 // Copyright 2009 The Go Authors. All rights reserved. | 3 // Copyright 2009 The Go Authors. All rights reserved. |
4 // Use of this source code is governed by a BSD-style | 4 // Use of this source code is governed by a BSD-style |
5 // license that can be found in the LICENSE file. | 5 // license that can be found in the LICENSE file. |
6 | 6 |
7 // Generate primes up to 100 using channels, checking the results. | 7 // Generate primes up to 100 using channels, checking the results. |
8 // This sieve consists of a linear chain of divisibility filters, | 8 // This sieve consists of a linear chain of divisibility filters, |
9 // equivalent to trial-dividing each n by all primes p ≤ n. | 9 // equivalent to trial-dividing each n by all primes p ≤ n. |
10 | 10 |
11 package main | 11 package main |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 primes := make(chan int) | 45 primes := make(chan int) |
46 go Sieve(primes) | 46 go Sieve(primes) |
47 a := []int{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 5
9, 61, 67, 71, 73, 79, 83, 89, 97} | 47 a := []int{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 5
9, 61, 67, 71, 73, 79, 83, 89, 97} |
48 for i := 0; i < len(a); i++ { | 48 for i := 0; i < len(a); i++ { |
49 if x := <-primes; x != a[i] { | 49 if x := <-primes; x != a[i] { |
50 println(x, " != ", a[i]) | 50 println(x, " != ", a[i]) |
51 panic("fail") | 51 panic("fail") |
52 } | 52 } |
53 } | 53 } |
54 } | 54 } |
LEFT | RIGHT |