输入n,输出n个从小到大排序的素数
golang版代码
package main
import "fmt"
func Generate(ch chan<- int){
for i:=2;;i++{
ch<-i
}
}
func Filter(in<-chan int,out chan<-int,prime int){
for {
i:=<-in
if i%prime!=0{
out<-i
}
}
}
func main(){
ch := make(chan int)
var n int
fmt.Scanln(&n)
go Generate(ch)
for i:=0;i<n;i++{
prime:=<-ch
fmt.Println(prime)
ch1:= make(chan int)
go Filter(ch,ch1,prime)
ch = ch1
}
}
控制台执行情况
