

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


factorials: [1 1 2 6 24 120 720 5040 40320 362880 3628800 39916800]
 
factorion?: function [n, base][
    try? [
        n = sum map digits.base:base n 'x -> factorials\[x]
    ]
    else [
        print ["n:" n "base:" base]
        false
    ]
]
 
loop 9..12 'base ->
    print ["Base" base "factorions:" select 1..45000 'z -> factorion? z base]
]