code: public static Factor product(List<Factor> factors) {
      return product(factors.toArray(new Factor[factors.size()]));
    }
docs: Multiplies together {@code factors} and returns the result. This is a
  convenience wrapper around {@link Factor#product(Factor)}. {@code factors}
  cannot be empty.
  
  @param factors
  @return