Factorial Function Old and New Standard Algorithms
(no prime factorization)
Alfred Moessner's  ingenious method uses only additions! Unfortunately, it is the slowest method.
This method uses only addition and squaring! Based on the notion of the 'swing numbers'. See: Divide, Swing and Conquer the Factorial!
The 'obvious' method (or should I call it the ubiquitous stupid one?).
The most simple not naive method to calculate the factorial. Models a complete binary tree.
Discovered by Eerke Boiten by playing with transformational programming. See: Factorization of the factorial.
Is related to the Boiten algorithm like the Recursive Product to the Naive Product.
A beautiful simple algorithm based on a hypergeometric expansion of the factorial. See: Divide, Swing and Conquer the Factorial!
A optimized variant of the Hyper Simple algorithm which uses additionally a symmetric relation between the coefficients. See: Divide, Swing and Conquer the Factorial!
A beautiful simple but powerful algorithm. See: Divide, Swing and Conquer the Factorial!
A optimized variant of the Simple Swing algorithm. See: Divide, Swing and Conquer the Factorial!
A recursive variant of the Swing Double algorithm, which uses rational arithmetic. See: Divide, Swing and Conquer the Factorial!
An attempt to optimize the Swing Rational algorithm. See: Divide, Swing and Conquer the Factorial!
Based on the differences of the factorials.
Based on the differences of squares.
Like the forgoing, but computed recursively.
Advanced Algorithms
(based on prime factorization)
An algorithm proposed by Peter Borwein.
See: On the Complexity of Calculating Factorials.
An algorithm proposed by Arnold Schönhage et al.. See: Fast Algorithms, BI-Wiss.-Verl., 1994, page 225.
An algorithm proposed by Peter Luschny.
See: Divide, Swing and Conquer the Factorial! (Write me to get the preprint.)
A variant of the foregoing algorithm
(working directly with lists of prime factors).
A variant of the foregoing algorithm
(caching primorials).
A simplification of an algorithm given by Ilan Vardi's 'Comp. Recreations in Mathematica', chap. 4.3, based on P. Goetgheluck, Prime divisors of binomial coefficients, Math. Comp. 51, 1988, 325-329.
An algorithm proposed by Bruce Leenstra.
(Personal communication).