Go语言检查质数程序

如果一个数除了1和它本身之外不能被其他数整除,那么它就是一个质数。请记住,2是唯一一个偶质数。编写一个Go语言程序来检查质数。

此Go程序使用for循环(for i := 2; i < primNum/2; i++),该循环从2开始,到数字/2结束。if语句(if primNum%i == 0)检查该数字是否能被迭代值整除。如果为真,计数器值递增,break语句将退出for循环。

在for循环之后,我们使用if-else语句(if primcount == 0 && primNum != 1)来检查计数器值是否为零且数字不等于1。如果为真,则该数是质数;否则不是。

package main

import "fmt"

func main() {

    var primNum, primcount int
    primcount = 0

    fmt.Print("Enter the Number to find the Prime Numbers = ")
    fmt.Scanln(&primNum)

    for i := 2; i < primNum/2; i++ {
        if primNum%i == 0 {
            primcount++
            break
        }
    }

    if primcount == 0 && primNum != 1 {
        fmt.Println(primNum, " is a Prime Number")
    } else {
        fmt.Println(primNum, " is Not a Prime Number")
    }
}
SureshMac:GoExamples suresh$ go run prime1.go
Enter the Number to find the Prime Numbers = 2
2  is a Prime Number
SureshMac:GoExamples suresh$ go run prime1.go
Enter the Number to find the Prime Numbers = 35
35  is Not a Prime Number

Go语言使用函数检查数字是否为质数的程序

package main

import "fmt"

var primcount int = 0

func primeFunc(primNum int) int {
    for i := 2; i < primNum/2; i++ {
        if primNum%i == 0 {
            primcount++
        }
    }
    return primcount
}

func main() {

    var primNum int

    fmt.Print("Enter the Number to find the Prime Numbers = ")
    fmt.Scanln(&primNum)

    primcount = primeFunc(primNum)

    if primcount == 0 && primNum != 1 {
        fmt.Println(primNum, " is a Prime Number")
    } else {
        fmt.Println(primNum, " is Not a Prime Number")
    }
}
SureshMac:GoExamples suresh$ go run prime2.go
Enter the Number to find the Prime Numbers = 31
31  is a Prime Number
SureshMac:GoExamples suresh$ go run prime2.go
Enter the Number to find the Prime Numbers = 89
89  is Not a Prime Number

程序会打印出最小和最大范围之间的质数,或者从1到N的质数。

package main

import "fmt"

func main() {

    var primNum, primMin, primMax, primcount int

    fmt.Print("Enter the Minimum and Maximum Limit for Prime Numbers = ")
    fmt.Scanln(&primMin, &primMax)

    fmt.Println("Prime Numbers between ", primMin, " and ", primMax, " are ")
    for primNum = primMin; primNum <= primMax; primNum++ {
        primcount = 0
        for i := 2; i < primNum/2; i++ {
            if primNum%i == 0 {
                primcount++
                break
            }
        }
        if primcount == 0 && primNum != 1 {
            fmt.Print(primNum, "\t")
        }
    }
    fmt.Println()
}
Golang Program to Find Prime Number