func makeData(min,max int)[]int{
data := make([]int,max-min+1)
for i := range data{
data[i]=min+i
}
return data
}
func echo(nums []int)<-chan int{
out := make(chan int)
go func() {
for _,n:= range nums{
out<-n
}
close(out)
}()
return out
}
func isPrime(v int)(b bool){
for i:=2;i<=v/2;i++{
if v%2==1{
return false
}
}
return true
}
func prime(in <-chan int)chan int{
out := make(chan int)
go func() {
for i := range in{
if isPrime(i){
out<-i
}
}
close(out)
}()
return out
}
func merge(in []chan int)<-chan int{
group := sync.WaitGroup{}
out := make(chan int)
for i := range in{
go func(ch <-chan int) {
group.Add(1)
for c := range ch{
out<-c
}
group.Done()
}(in[i])
}
go func() {
group.Wait()
close(out)
}()
return out
}
func sum(in <-chan int)chan int{
out := make(chan int)
go func() {
s := 0
for n := range in{
s += n
}
out<- s
close(out)
}()
return out
}
func main(){
data := makeData(0, 10000)
input := echo(data)
chs :=make([]chan int,0)
for _ = range []int{0,1,2,3,4}{
chs = append(chs,sum(prime(input)))
}
for i := range sum(merge(chs)){
fmt.Println(i)
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具