Find x!. Raise a ValueError if x is negative or non-integral. This function has been overriden from math.factorial to work element-wise on iterables