34: digit factorials

This commit is contained in:
VicRen
2020-11-04 09:56:19 +08:00
parent 804b2722d1
commit 8b1bf8619f
2 changed files with 151 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
package main
import (
"fmt"
"strconv"
)
func main() {
sum := 0
max := factorialOf(9) * 10
for i := 3; i < max; i++ {
if sumNumberFactorials(splitNumber(i)) == i {
sum += i
}
}
fmt.Println("sum:", sum)
}
func sumNumberFactorials(ns []int) int {
sum := 0
for _, n := range ns {
sum += factorialOf(n)
}
return sum
}
func splitNumber(n int) []int {
var ret []int
str := strconv.Itoa(n)
for _, c := range str {
i, _ := strconv.Atoi(string(c))
ret = append(ret, i)
}
return ret
}
func factorialOf(n int) int {
p := 1
for i := n; i > 0; i-- {
p *= i
}
return p
}