go语言试题
1. 判断 101-200 之间有多少个素数,并输出所有素数。
package main
import(
"fmt"
)
func isPrime(n int) bool {
for i:= 2; i < n; i++ {
if n%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)
continue
}
}
}
2. 打印出100-999中所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字
立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次
方+5 的三次方+3 的三次方。
package main
import(
"fmt"
)
func isNumber(n int) bool {
var i,j,k int
i = n%10
j = (n/10) % 10
k = (n / 100) % 10
sum := i*i*i + j*j*j + k*k*k
return sum == n
}
func main() {
var n int
var m int
fmt.Scanf("%d,%d",&n,&m)
for i := n; i < m; i++ {
if isNumber(i) == true {
fmt.Println(i,"is shui xianhua")
}
}
// if isNumber(n) == true {
// fmt.Println(n,"is shui xianhua")
// }else{
// fmt.Println(n,"is not shuixinahua")
// }
}
3. 对于一个数n,求n的阶乘之和,即: 1! + 2! + 3!+…n!
package main
import(
"fmt"
)
func sum(n int) uint64 {
var s uint64 = 1
var sum uint64 = 0
for i := 1; i <= n; i++ {
s = s * uint64(i)
fmt.Printf("%d! = %v \n",i,s)
sum += s
}
return sum
}
func main() {
var n int
fmt.Scanf("%d",&n)
s := sum(n)
fmt.Println(s)
}
Dylan

浙公网安备 33010602011771号