如果一个数除了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()
}
