Digit factorials
Problem 34
145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145.
Find the sum of all numbers which are equal to the sum of the factorial of their digits.
Note: as 1! = 1 and 2! = 2 are not sums they are not included.
package main import ( "fmt" "strconv") /*Digit factorialsProblem 34145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145.Find the sum of all numbers which are equal to the sum of the factorial of their digits.Note: as 1! = 1 and 2! = 2 are not sums they are not included.*//**1.把数字转化成字符串,然后拆开2.判断是否相等*///求一个数的阶乘的函数func Factorial(n int) int { var result int if n > 0 { result = n * Factorial(n-1) return result } return 1}func Breakjc(i int) int { result := 0 str := strconv.Itoa(i) for _, n := range str { result += Factorial(int(n - 48)) } return result}func main() { var i, j int i = 3 //求所有组成数字的阶乘和的函数 for { j = Breakjc(i) if i == j { fmt.Println(i) } i++ } }
结果:40730