factorial n | n < 0 = 0 | otherwise = product [1..n]However, we use a fast algorithm based on the split-recursive form:
factorial n = 2^(n - popCount n) * product [(q k)^k | forall k, k >= 1] where q k = product [j | forall j, n*2^(-k) < j <= n*2^(-k+1), odd j]
import Diagrams.TwoD.Factorization factorDiagramEx = factorDiagram 700
import Diagrams.TwoD.Factorization factorDiagram'Ex = factorDiagram' [2,5,6]