找素数

155 阅读1分钟

输入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
	}
}

控制台执行情况