Polynomial long division

In algebra, polynomial long division is an algorithm for dividing a polynomial by another polynomial of the same or lower degree, a generalized version of the familiar arithmetic technique called long division. It can be done easily by hand, because it separates an otherwise complex division problem into smaller ones. Sometimes using a shorthand version called synthetic division is faster, with less writing and fewer calculations. Another abbreviated method is polynomial short division (Blomqvist's method).
Polynomial long division is an algorithm that implements the Euclidean division of polynomials, which starting from two polynomials "A" (the "dividend") and "B" (the "divisor") produces, if "B" is not zero, a "quotient" "Q" and a "remainder" "R" such that
and either "R" = 0 or the degree of "R" is lower than the degree of "B". These conditions uniquely define "Q" and "R", which means that "Q" and "R" do not depend on the method used to compute them.
The result "R" = 0 occurs if and only if the polynomial "A" has "B" as a factor. Thus long division is a means for testing whether one polynomial has another as a factor, and, if it does, for factoring it out. For example, if a root "r" of "A" is known, it can be factored out by dividing "A" by ("x" – "r").
Example.
Polynomial long division.
Find the quotient and the remainder of the division of formula_1 the "dividend", by formula_2 the "divisor".
The dividend is first rewritten like this:
The quotient and remainder can then be determined as follows:
The polynomial above the bar is the quotient "q"("x"), and the number left over (5) is the remainder "r"("x").
The long division algorithm for arithmetic is very similar to the above algorithm, in which the variable "x" is replaced by the specific number 10.
Polynomial short division.
Blomqvist's method is an abbreviated version of the long division above. This pen-and-paper method uses the same algorithm as polynomial long division, but mental calculation is used to determine remainders. This requires less writing, and can therefore be a faster method once mastered.
The division is at first written in a similar way as long multiplication with the dividend at the top, and the divisor below it. The quotient is to be written below the bar from left to right.
formula_5
Divide the first term of the dividend by the highest term of the divisor ("x"3 ÷ "x" = "x"2). Place the result below the bar. "x"3 has been divided leaving no remainder, and can therefore be marked as used with a backslash. The result "x"2 is then multiplied by the second term in the divisor −3 = −3"x"2. Determine the partial remainder by subtracting −2"x"2 − (−3"x"2) = "x"2. Mark −2"x"2 as used and place the new remainder "x"2 above it.
formula_6
Divide the highest term of the remainder by the highest term of the divisor ("x"2 ÷ "x" = "x"). Place the result (+x) below the bar. "x"2 has been divided leaving no remainder, and can therefore be marked as used. The result "x" is then multiplied by the second term in the divisor −3 = −3"x". Determine the partial remainder by subtracting 0"x" − (−3"x") = 3"x". Mark 0x as used and place the new remainder 3"x" above it.
formula_7
Divide the highest term of the remainder by the highest term of the divisor (3x ÷ "x" = 3). Place the result (+3) below the bar. 3x has been divided leaving no remainder, and can therefore be marked as used. The result 3 is then multiplied by the second term in the divisor −3 = −9. Determine the partial remainder by subtracting −4 − (−9) = 5. Mark −4 as used and place the new remainder 5 above it.
formula_8
The polynomial below the bar is the quotient "q"("x"), and the number left over (5) is the remainder "r"("x").
Pseudocode.
The algorithm can be represented in pseudocode as follows, where +, −, and × represent polynomial arithmetic, and / represents simple division of two terms:
 function n / d is
 require d ≠ 0
 q ← 0
 r ← n // At each step n = d × q + r
 while r ≠ 0 and degree(r) ≥ degree(d) do
 t ← lead(r) / lead(d) // Divide the leading terms
 q ← q + t
 r ← r − t × d
 return (q, r)
Note that this works equally well when degree("n") < degree("d"); in that case the result is just the trivial (0, "n").
This algorithm describes exactly the above paper and pencil method: is written on the left of the ")"; is written, term after term, above the horizontal line, the last term being the value of ; the region under the horizontal line is used to compute and write down the successive values of .
Euclidean division.
For every pair of polynomials ("A", "B") such that "B" ≠ 0, polynomial division provides a "quotient" "Q" and a "remainder" "R" such that 
and either "R"=0 or degree("R") < degree("B"). Moreover ("Q", "R") is the unique pair of polynomials having this property.
The process of getting the uniquely defined polynomials "Q" and "R" from "A" and "B" is called "Euclidean division" (sometimes "division transformation"). Polynomial long division is thus an algorithm for Euclidean division.
Applications.
Factoring polynomials.
Sometimes one or more roots of a polynomial are known, perhaps having been found using the rational root theorem. If one root "r" of a polynomial "P"("x") of degree "n" is known then polynomial long division can be used to factor "P"("x") into the form where "Q"("x") is a polynomial of degree "n" − 1. "Q"("x") is simply the quotient obtained from the division process; since "r" is known to be a root of "P"("x"), it is known that the remainder must be zero.
Likewise, if more than one root is known, a linear factor in one of them ("r") can be divided out to obtain "Q"("x"), and then a linear term in another root, "s", can be divided out of "Q"("x"), etc. Alternatively, they can all be divided out at once: for example the linear factors and can be multiplied together to obtain the quadratic factor which can then be divided into the original polynomial "P"("x") to obtain a quotient of degree 
In this way, sometimes all the roots of a polynomial of degree greater than four can be obtained, even though that is not always possible. For example, if the rational root theorem can be used to obtain a single (rational) root of a quintic polynomial, it can be factored out to obtain a quartic (fourth degree) quotient; the explicit formula for the roots of a quartic polynomial can then be used to find the other four roots of the quintic.
Finding tangents to polynomial functions.
Polynomial long division can be used to find the equation of the line that is tangent to the graph of the function defined by the polynomial "P"("x") at a particular point If "R"("x") is the remainder of the division of "P"("x") by then the equation of the tangent line at to the graph of the function is regardless of whether or not "r" is a root of the polynomial.
Cyclic redundancy check.
A cyclic redundancy check uses the remainder of polynomial division to detect errors in transmitted messages.