

Definition

A factorion is a natural number that equals the sum of the factorials of its digits.



Example
 
145   is a factorion in base 10 because:


          1! + 4! + 5!   =   1 + 24 + 120   =   145 





It can be shown (see talk page) that no factorion in base 10 can exceed   1,499,999.



Task

Write a program in your language to demonstrate, by calculating and printing out the factorions, that:

   There are   3   factorions in base   9
   There are   4   factorions in base 10
   There are   5   factorions in base 11 
   There are   2   factorions in base 12     (up to the same upper bound as for base 10)


See also

 Wikipedia article
 OEIS:A014080 - Factorions in base 10
 OEIS:A193163 - Factorions in base n


var fact = Array(repeating: 0, count: 12)
 
fact[0] = 1
 
for n in 1..<12 {
  fact[n] = fact[n - 1] * n
}
 
for b in 9...12 {
  print("The factorions for base \(b) are:")
 
  for i in 1..<1500000 {
    var sum = 0
    var j = i
 
    while j > 0 {
      sum += fact[j % b]
      j /= b
    }
 
    if sum == i {
      print("\(i)", terminator: " ")
      fflush(stdout)
    }
  }
 
  print("\n")
}