add factorial2, non-recursive version