Go开发之路 -- Go语言基本语法 - 作业
1. 判断101 - 200之间有多少个素数,并输出所有素数。
package main import ( "fmt" ) var count = 0 func prime(a, b int) { var x int for x = a; x < b; x++ { for i := 2; i < x; i++ { if x % i != 0 { if x-1 == i { fmt.Println(x) count += 1 } }else { i = x } } } } func main() { prime(101, 200) fmt.Printf("总共有%d个素数", count) }
2. 打印出100-999中所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如:153是一个“水仙花数”,因为153 = 1的三次方 + 5的三次方 + 3的三次方。
package main import "fmt" func main() { for a:=100; a <= 999; a++ { if (a/100)*(a/100)*(a/100) + ((a/10)%10)*((a/10)%10)*((a/10)%10) + (a%10)*(a%10)*(a%10) == a { fmt.Println(a) } } }
3. 对于一个数n,求n的阶乘之和。即:1! + 2! + 3! + ... + n!
package main import "fmt" func fac(a int) int { // 求阶乘 x := 1 for i := 1; i <= a; i++ { x *= i } return x } func sum (n int) int { // 求阶乘之和 sum := 0 for i := 1; i <= n; i++ { sum += fac(i) } return sum } func main() { fmt.Println(sum(5)) }