Factorial using enum only