// Strong numbers are the numbers that the sum of factorial of its digits
// is equal to the original number
// 145 is a strong number: 1 + 24 + 120 = 145
package main
import (
"fmt"
)
func factorial(n int) int {
fact := 1
for i := 2; i <= n; i++ {
fact *= i
}
return fact
}
func main() {
n := 145
reminder, sum, tmp := 0, 0, n
for n != 0 {
reminder = n % 10
sum += factorial(reminder)
n /= 10
}
if sum == tmp {
fmt.Printf("%d is a strong number\n", tmp)
} else {
fmt.Printf("%d is not a strong number\n", tmp)
}
}
/*
run:
145 is a strong number
*/