Implemented a generic  factorial accurate to 100 digits but capable of calculating 1000000! and non-integral factorials such as 0.5!.