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))
}

  

posted @ 2019-03-24 17:56  李培冠  阅读(782)  评论(0编辑  收藏  举报