美文网首页
golang判断素数,水仙花数和求阶乘

golang判断素数,水仙花数和求阶乘

作者: Odven | 来源:发表于2020-06-23 16:21 被阅读0次

    1) 判断素数

    // main.go
    package main
    
    import (
        "fmt"
        "math"
    )
    
    func isPrime(a int) bool {
        if a == 1 {
            return false
        }
        for i := 2; i <= int(math.Sqrt(float64(a))); i++ {
            if a%i == 0 {
                return false
            }
        }
        return true
    }
    
    func main() {
        var n int
        var m int
        fmt.Scanf("%d %d", &n, &m)
        for i := n; i < m; i++ {
            if isPrime(i) == true {
                fmt.Printf("%d ---> 是素数\n", i)
            }
        }
    }
    
    
    // main.py
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    
    def isPrime(a):
        if a == 1:
            return False
        for i in range(2, a):
            if a % i == 0:
                return False
    
        return True
    
    
    def main():
        for i in range(1, 10):
            if isPrime(i) == True:
                print("%s ---> 是素数" % i)
    
    
    if __name__ == '__main__':
        main()
    

    2) 判断水仙花数

    // main.go
    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func isSxh(a int) int {
        var sum int
        s := strconv.Itoa(a)  // 把数字转换为字符
        // fmt.Println(s)
        // fmt.Println(len(s))
        for i := 0; i < len(s); i++ {
            j := fmt.Sprintf("%c", s[i])  // s[i]是相应字符对应的ascii码  ,使用fmt.Sprintf("%c", s[i])转换ascii码对应的真正的字符
            // fmt.Println(j)
            k, _ := strconv.Atoi(j)  // 把字符转换为数字
            sum += k * k * k
        }
        // fmt.Println(strings.Repeat("#", 30))
        return sum
    }
    
    func main() {
        for i := 1; i < 2000; i++ {
            // result := isSxh(i)
            // fmt.Println(result)
            if isSxh(i) == i {
                fmt.Printf("%d ---> 是水仙花数\n", i)
            }
        }
    }
    
    
    // main.py
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    
    def isSxh(a):
        s = "%s" % a
        sum = 0
        for i in range(len(s)):
            sum += int(s[i]) ** 3
        return sum
    
    
    def main():
        for i in range(10, 2000):
            if isSxh(i) == i:
                print("%s ---> 是水仙花数" % i)
    
    
    if __name__ == '__main__':
        main()
    

    3) 求阶乘

    // mian.go
    package main
    
    import "fmt"
    
    func jiecheng(a int) {
        var sum = 1
        for i := 1; i <= a; i++ {
            sum = sum * i
        }
        fmt.Printf("%d 的阶乘是 %d\n", a, sum)
    }
    
    func main() {
        for i := 1; i < 10; i++ {
            jiecheng(i)
        }
    }
    
    
    // main.py
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    
    def jiecheng(a):
        if a <= 0:
            print("不允许小于等于0")
            return
        sum = 1
        for i in range(1, a + 1):
            sum = sum * i
        print("%s 的阶乘是 %s" % (a, sum))
    
    
    def main():
        for i in range(1, 10):
            jiecheng(i)
    
    
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

          本文标题:golang判断素数,水仙花数和求阶乘

          本文链接:https://www.haomeiwen.com/subject/aywcfktx.html