randRangeNonZero(-10, 10) randRangeNonZero(-10, 10)
randRangeNonZero(-1, 1) * randRangeNonZero(2, 5) !!randRange(0, 1) A * B -A - B

Factor the expression below completely. All coefficients should be integers.

COMMONx^COMMON_VAR ? 3 : 2 + COMMON * LINEARx^COMMON_VAR ? 2 : 1 + COMMON * CONSTANTCOMMON_VAR ? "x" : ""

COMMONx(x-A)(x-B)

COMMON(x-A)(x-B)

If we notice that all terms have a common factor, we can rewrite the expression as,

COMMONx(x^2 + LINEARx + CONSTANT).

COMMON(x^2 + LINEARx + CONSTANT).

We can now focus on factoring the polynomial x^2 + LINEARx + CONSTANT.

When we factor a polynomial, we are basically reversing this process of multiplying linear expressions together:

\qquad \begin{eqnarray} (x + a)(x + b) \quad&=&\quad xx &+& xb + ax &+& ab \\ \\ &=&\quad x^2 &+& \green{(a + b)}x &+& \blue{ab} \end{eqnarray}

\qquad \begin{eqnarray} \hphantom{(x + a)(x + b) \quad}&\hphantom{=}&\hphantom{\quad xx }&\hphantom{+}&\hphantom{ (a + b)x }&\hphantom{+} & \\ &=&\quad x^2 & LINEAR >= 0 ? "+" : ""& plus( "\\green{" + LINEAR + "}x" )& CONSTANT >= 0 ? "+" : ""& plus( "\\blue{" + CONSTANT + "}" ) \end{eqnarray}

The coefficient on the x term is LINEAR and the constant term is CONSTANT, so to reverse the steps above, we need to find two numbers that add up to LINEAR and multiply to CONSTANT.

You can try out different factors of CONSTANT to see if you can find two that satisfy both conditions. If you're stuck and can't think of any, you can also rewrite the conditions as a system of equations and try solving for a and b:

\qquad \pink{a} + \pink{b} = \green{LINEAR}

\qquad \pink{a} \times \pink{b} = \blue{CONSTANT}

The two numbers -A and -B satisfy both conditions:

\qquad \pink{-A} + \pink{-B} = \green{LINEAR}

\qquad \pink{-A} \times \pink{-B} = \blue{CONSTANT}

So we can factor the polynomial as: (x A < 0 ? "+" : "" \pink{-A})(x B < 0 ? "+" : "" \pink{-B})

The fully factored expression is: COMMONx(x + -A)(x + -B) COMMON(x + -A)(x + -B)