小练习

一、判断 101-200 之间有多少个素数,并输出所有素数。

example1.go

package example1

import (
    "fmt"
)

func Shusu(n int) bool {
    var flag bool = true
    for i := 2; i < n; i++ {
        if n%i == 0 {
            flag = false
            break
        }
    }
    if flag == true {
        fmt.Println(n)
    }
    return flag
}

main.go

package main

import (
    "fmt"
    "go_learning/day2/homework/example1/example1"
)

func main() {
    var n, m, sum int
    fmt.Scanf("%d,%d", &n, &m)
    fmt.Printf("------以下是素数--------\n")
    for i := n; i < m; i++ {
        if example1.Shusu(i) {
            sum += 1
        }
    }
    fmt.Printf("%d到%d之间一共%d个素数", n, m, sum)
}

结果:

➜ GoWorks go run src/go_learning/day2/homework/example1/main/main.go
101,200
------以下是素数--------
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
101到200之间一共21个素数

二、打印出100-999中所有的“水仙花数”

所谓“水仙花数”是指一个三位数,其各位数字 立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次 方+5 的三次方+3 的三次方。

example2.go

package example2

func Isxh(n int) bool {
    var a int = n % 10
    var b int = n / 10 % 10
    var c int = n / 100 % 10
    sum := a*a*a + b*b*b + c*c*c
    return sum == n
}

main.go

package main

import (
    "fmt"
    "go_learning/day2/homework/example2/example2"
)

func main () {
    var n,j int
    fmt.Scanf("%d,%d",&n,&j)
    fmt.Printf("-------------------\n")
    for i := n;i < j;i++ {
        if example2.Isxh(i) == true {
            fmt.Println(i)
        }
    }
}

结果:

➜ GoWorks go run src/go_learning/day2/homework/example2/main/main.go
100,999
-------------------
153
370
371
407

三、对于一个数n,求n的阶乘之和

即: 1! + 2! + 3!+…n!

example3.go

package example3

func Jsum(n int) int {
    /*
        1 1*1 = 1
        2 2*1 = 2
        3 3*2*1 = 6
        4 4*3*2*1 = 24
    */
    var sum, s int = 0, 1
    for i := 1; i <= n; i++ {
        s = s * i // 1=1*1,2=1*2,6=2*3,24=6*4
        sum = sum + s // 1=0+1,3=1+2,9=3+6,33=9+24
    }
    return sum
}


main.go

package main

import (
    "fmt"
    "go_learning/day2/homework/example3/example3"
)

func main() {
    var n int
    fmt.Scanf("%d", &n)
    fmt.Printf("--------------------\n")
    sum := example3.Jsum(n)
    fmt.Println(sum)

}

结果:

➜ GoWorks go run src/go_learning/day2/homework/example3/main/main.go
4
--------------------
33

Search

    Table of Contents