Go语言生成素数的方法_Golang

本文实例讲述了Go语言生成素数的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

package main
// 生成2, 3, 4, ... 到 channel 'ch'中.
func Generate(ch chan<- int) {
    for i := 2; ; i++ {
        ch <- i  // Send 'i' to channel 'ch'.
    }
}
// 从管道复制值 'in' 到 channel 'out',
// 移除可整除的数 'prime'.
func Filter(in <-chan int, out chan<- int, prime int) {
    for {
        i := <-in    // 接收值 'in'.
        if i%prime != 0 {
            out <- i // 传入 'i' 到 'out'.
        }
    }
}
func main() {
    ch := make(chan int)    // Create a newchannel.
    go Generate(ch) // Launch Generate goroutine.
    for i := 0; i < 10; i++ {
        prime := <-ch
        print(prime, "\n")
        ch1 := make(chan int)
        go Filter(ch, ch1, prime)
        ch = ch1
    }
}

希望本文所述对大家的Go语言程序设计有所帮助。

时间: 2024-07-30 13:31:29

Go语言生成素数的方法_Golang的相关文章

Go语言生成随机数的方法_Golang

本文实例讲述了Go语言生成随机数的方法.分享给大家供大家参考.具体实现方法如下: golang生成随机数可以使用math/rand包 复制代码 代码如下: package main        import (     "fmt"     "math/rand" )        func main() {     for i:=0; i<10; i++ {         fmt.Println(rand.Intn(100))     } } 发现这种情况

Python实现求最大公约数及判断素数的方法

  本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出时会跳出

编程-判断一个数是不是素数的方法

问题描述 判断一个数是不是素数的方法 用比这个数字小的所有素数去整除它就可以知道这个数是不是素数.这是为什么 解决方案 看看素数定义 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数: 解决方案二: 因为非素数可以表示为素数的乘积.所以判断了素数,那么就包含了非素数. 举例,判断35是不是素数,只要判断2 3 5,为什么不判断4?因为一个数如果能被4整除,必然能被2整除,而

Java列出2到100之间所有素数的方法_java

本文实例讲述了Java列出2到100之间所有素数的方法.分享给大家供大家参考.具体实现方法如下: //TestPrime.java: public class TestPrime { public static boolean isPrime(int num) { for(int i = 2; i <= Math.sqrt(num); i++) { //程序默认2是素数,当j=2时,循环不执行 if(num % i == 0) { return false; } } return true; }

go语言实现简单http服务的方法_Golang

本文实例讲述了go语言实现简单http服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "flag"     "log"     "net/http"     "text/template" ) var addr = flag.String("addr", ":1718", "http service

Go语言Echo服务器的方法_Golang

本文实例讲述了Go语言Echo服务器的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "net"     "io" ) func main() {     serv, e := net.Listen("tcp", ":12345")     if e != nil {         panic(e)     }     defer serv.Close()  

Go语言调用其它程序并获得程序输出的方法_Golang

本文实例讲述了Go语言调用其它程序并获得程序输出的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "exec" // "os/exec" in go1     "fmt" ) func main(){     cmd := exec.Command("ls", "-l")     buf, err := cmd.Output()   

Go语言实现简单Web服务器的方法_Golang

本文实例讲述了Go语言实现简单Web服务器的方法.分享给大家供大家参考.具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } 在这个例子中,类型 Hello 实现了 http.Handler. 注意: 这个例子无法在基于 web 的指南用户界面运行.为了尝试编写 web 服务器,可能需要安装

Go语言指针访问结构体的方法_Golang

本文实例讲述了Go语言指针访问结构体的方法.分享给大家供大家参考.具体分析如下: Go有指针,但是没有指针运算. 结构体字段可以通过结构体指针来访问.通过指针间接的访问是透明的. 复制代码 代码如下: package main import "fmt" type Vertex struct {     X int     Y int } func main() {     p := Vertex{1, 2}     q := &p     q.X = 1e9     fmt.P