Go 程序查找完美数

如果一个正整数的所有正因数(不包括它自身)之和等于它本身,那么这个数就是完美数。例如,6 是一个完美数(6 的因数之和为:1 + 2 + 3 = 6)。

这个 Go 程序使用 for 循环 (for i := 1; i < perfNum; i++) 和 If 语句 (if perfNum%i == 0) 来查找给定数字的正因数之和。在 for 循环之后,我们使用 If else 语句 (if perfNum == perfsum) 来检查因数之和是否等于给定数字。如果为真,则为完美数;否则,不是完美数。

package main

import "fmt"

func main() {

    var perfNum, perfsum int
    perfsum = 0

    fmt.Print("Enter the Number to find the Perfect = ")
    fmt.Scanln(&perfNum)

    for i := 1; i < perfNum; i++ {
        if perfNum%i == 0 {
            perfsum = perfsum + i
        }
    }

    if perfNum == perfsum {
        fmt.Println(perfNum, " is a Perfect Number")
    } else {
        fmt.Println(perfNum, " is Not a Perfect Number")
    }
}
SureshMac:Goexamples suresh$ go run perfect1.go
Enter the Number to find the Perfect = 6
6  is a Perfect Number
SureshMac:Goexamples suresh$ go run perfect1.go
Enter the Number to find the Perfect = 22
22  is Not a Perfect Number

Go 程序使用函数查找完美数

package main

import "fmt"

var perfsum int = 0

func perfectNum(perfNum int) int {
    for i := 1; i < perfNum; i++ {
        if perfNum%i == 0 {
            perfsum = perfsum + i
        }
    }
    return perfsum
}
func main() {

    var perfNum int

    fmt.Print("Enter the Number to find the Perfect = ")
    fmt.Scanln(&perfNum)

    perfsum = perfectNum(perfNum)

    if perfNum == perfsum {
        fmt.Println(perfNum, " is a Perfect Number")
    } else {
        fmt.Println(perfNum, " is Not a Perfect Number")
    }
}
SureshMac:Goexamples suresh$ go run perfect2.go
Enter the Number to find the Perfect = 28
28  is a Perfect Number
SureshMac:Goexamples suresh$ go run perfect2.go
Enter the Number to find the Perfect = 250
250  is Not a Perfect Number

这个 Golang 程序将在最小和最大限制之间查找并打印完美数。

package main

import "fmt"

func main() {

    var perfNum, perfMin, perfMax, perfsum int
    perfsum = 0

    fmt.Print("Enter the Minimum and Maximum limit of Perfect Numbers = ")
    fmt.Scanln(&perfMin, &perfMax)

    for perfNum = perfMin; perfNum <= perfMax; perfNum++ {
        perfsum = 0
        for i := 1; i < perfNum; i++ {
            if perfNum%i == 0 {
                perfsum = perfsum + i
            }
        }
        if perfNum == perfsum {
            fmt.Print(perfNum, "\t")
        }
    }
}
Golang Program to find the Perfect Number