

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


  [ table ]              is results   (   n --> s )
  4 times 
    [ ' [ stack [ ] ]
      copy
      ' results put ]
 
  [ results dup take 
    rot join swap put ]  is addresult ( n n -->   )
 
  [ table 9 10 11 12 ]   is radix     (   n --> n )
 
  [ table 1 ]            is !         (   n --> n )     
  1 11 times
    [ i^ 1+ * dup
      ' ! put ]
  drop 
 
  [ dip dup
    0 temp put
    [ tuck /mod !
      temp tally
      swap over 0 = 
      until ]
    2drop 
    temp take = ]       is factorion ( n n --> b )
 
  1500000 times
    [ i^ 4 times 
      [ dup 
        i^ radix
        factorion if
          [ dup i^ 
            addresult ] ]
      drop ]
  4 times 
    [ say "Factorions for base "
     i^ radix echo say ": "
     i^ results take echo cr ]