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)

}

 

posted @ 2020-06-20 13:42  Dylan123  阅读(268)  评论(0)    收藏  举报