Polynomial Division Calculator

#cd-polynomial-division-calculator { –cd-bg: #f6f8fb; –cd-card: #ffffff; –cd-text: #172033; –cd-muted: #5d687a; –cd-border: #d9e0ea; –cd-primary: #2457c5; –cd-primary-dark: #193f91; –cd-soft: #eef4ff; –cd-error: #b42318; –cd-success: #147a3b; –cd-shadow: 0 10px 28px rgba(23, 32, 51, 0.08); color: var(–cd-text); background: var(–cd-bg); border: 1px solid var(–cd-border); border-radius: 14px; padding: 18px; line-height: 1.6; font-family: inherit; max-width: 1120px; margin: 0 auto; box-sizing: border-box; }#cd-polynomial-division-calculator * { box-sizing: border-box; }#cd-polynomial-division-calculator h2, #cd-polynomial-division-calculator h3 { color: var(–cd-text); line-height: 1.25; margin: 0 0 12px; }#cd-polynomial-division-calculator p { margin: 0 0 12px; }#cd-polynomial-division-calculator .cd-tool-header { background: linear-gradient(135deg, #ffffff 0%, #eef4ff 100%); border: 1px solid var(–cd-border); border-radius: 12px; padding: 18px; margin-bottom: 16px; }#cd-polynomial-division-calculator .cd-category { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(–cd-primary-dark); background: var(–cd-soft); border: 1px solid #c9d9ff; border-radius: 999px; padding: 5px 10px; margin-bottom: 10px; }#cd-polynomial-division-calculator .cd-tool-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, 0.85fr); gap: 16px; align-items: start; }#cd-polynomial-division-calculator .cd-panel { background: var(–cd-card); border: 1px solid var(–cd-border); border-radius: 12px; padding: 16px; box-shadow: var(–cd-shadow); }#cd-polynomial-division-calculator .cd-field { margin-bottom: 13px; }#cd-polynomial-division-calculator label { display: block; font-weight: 700; margin-bottom: 6px; }#cd-polynomial-division-calculator input, #cd-polynomial-division-calculator select { width: 100%; min-height: 46px; border: 1px solid var(–cd-border); border-radius: 9px; padding: 10px 12px; font: inherit; color: var(–cd-text); background: #ffffff; }#cd-polynomial-division-calculator input:focus, #cd-polynomial-division-calculator select:focus { outline: 3px solid rgba(36, 87, 197, 0.16); border-color: var(–cd-primary); }#cd-polynomial-division-calculator .cd-help { display: block; color: var(–cd-muted); font-size: 13px; margin-top: 4px; }#cd-polynomial-division-calculator .cd-button-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }#cd-polynomial-division-calculator button { border: 0; border-radius: 9px; min-height: 44px; padding: 10px 14px; font: inherit; font-weight: 800; cursor: pointer; transition: background 0.15s ease, transform 0.15s ease; }#cd-polynomial-division-calculator button:active { transform: translateY(1px); }#cd-polynomial-division-calculator .cd-primary-btn { background: var(–cd-primary); color: #ffffff; }#cd-polynomial-division-calculator .cd-primary-btn:hover { background: var(–cd-primary-dark); }#cd-polynomial-division-calculator .cd-secondary-btn { background: #e9edf5; color: var(–cd-text); }#cd-polynomial-division-calculator .cd-secondary-btn:hover { background: #dfe5ef; }#cd-polynomial-division-calculator .cd-preset-btn { background: #ffffff; color: var(–cd-primary-dark); border: 1px solid #c9d9ff; min-height: 38px; font-size: 14px; padding: 8px 10px; }#cd-polynomial-division-calculator .cd-result-box { background: #0f1f3a; color: #ffffff; border-radius: 12px; padding: 16px; min-height: 180px; }#cd-polynomial-division-calculator .cd-result-label { display: block; font-size: 13px; color: #b9c8e8; margin-bottom: 6px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }#cd-polynomial-division-calculator .cd-main-result { font-size: clamp(22px, 4vw, 34px); line-height: 1.2; font-weight: 900; word-break: break-word; margin-bottom: 10px; }#cd-polynomial-division-calculator .cd-result-detail { color: #dbe6ff; font-size: 15px; word-break: break-word; }#cd-polynomial-division-calculator .cd-error { color: var(–cd-error); background: #fff0ee; border: 1px solid #ffd2cc; border-radius: 9px; padding: 10px 12px; margin-top: 12px; display: none; font-weight: 700; }#cd-polynomial-division-calculator .cd-steps { margin-top: 14px; background: #ffffff; border: 1px solid var(–cd-border); border-radius: 10px; padding: 12px; max-height: 320px; overflow: auto; }#cd-polynomial-division-calculator .cd-step { border-bottom: 1px solid #edf1f7; padding: 8px 0; color: var(–cd-muted); font-size: 14px; }#cd-polynomial-division-calculator .cd-step:last-child { border-bottom: 0; }#cd-polynomial-division-calculator .cd-section { background: #ffffff; border: 1px solid var(–cd-border); border-radius: 12px; padding: 18px; margin-top: 16px; }#cd-polynomial-division-calculator .cd-section ul, #cd-polynomial-division-calculator .cd-section ol { margin: 0 0 0 20px; padding: 0; }#cd-polynomial-division-calculator .cd-section li { margin-bottom: 8px; }#cd-polynomial-division-calculator .cd-formula { background: var(–cd-soft); border: 1px solid #c9d9ff; border-radius: 10px; padding: 12px; font-weight: 800; overflow-wrap: anywhere; margin: 12px 0; }#cd-polynomial-division-calculator table { width: 100%; border-collapse: collapse; margin-top: 10px; overflow: hidden; border-radius: 10px; }#cd-polynomial-division-calculator th, #cd-polynomial-division-calculator td { border: 1px solid var(–cd-border); padding: 10px; text-align: left; vertical-align: top; }#cd-polynomial-division-calculator th { background: #f0f4fa; }#cd-polynomial-division-calculator details { border: 1px solid var(–cd-border); border-radius: 10px; padding: 12px; background: #ffffff; margin-bottom: 10px; }#cd-polynomial-division-calculator summary { cursor: pointer; font-weight: 800; }#cd-polynomial-division-calculator .cd-related { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }#cd-polynomial-division-calculator .cd-related a { display: inline-flex; border: 1px solid var(–cd-border); border-radius: 999px; padding: 8px 11px; background: #f7f9fc; color: var(–cd-primary-dark); font-weight: 700; text-decoration: none; }@media (max-width: 820px) { #cd-polynomial-division-calculator { padding: 12px; border-radius: 10px; }#cd-polynomial-division-calculator .cd-tool-grid { grid-template-columns: 1fr; }#cd-polynomial-division-calculator .cd-panel, #cd-polynomial-division-calculator .cd-section, #cd-polynomial-division-calculator .cd-tool-header { padding: 14px; }#cd-polynomial-division-calculator .cd-button-row { flex-direction: column; }#cd-polynomial-division-calculator button { width: 100%; } }
Algebra Calculator

Polynomial Division Calculator

Use this polynomial division calculator to divide one polynomial by another and see the quotient, remainder, and long division steps.

Example format: x^3 – 2x^2 + 4x – 8
Use x for the variable. Negative powers are not supported.
0 2 4 6
Result
Enter polynomials
The quotient and remainder will appear here.

Quick Result Explanation

The calculator rewrites the division in the form dividend = divisor times quotient plus remainder. If the remainder is 0, the divisor divides the dividend exactly. If a remainder remains, the quotient is only part of the result.

Polynomial Division Formula and Method

Polynomial long division follows the same idea as number long division: divide the leading term, multiply back, subtract, and repeat until the remaining polynomial has a lower degree than the divisor.

P(x) = D(x) times Q(x) + R(x)
  • P(x) is the dividend polynomial.
  • D(x) is the divisor polynomial.
  • Q(x) is the quotient polynomial.
  • R(x) is the remainder polynomial, and its degree must be lower than the degree of the divisor.

How to Use the Polynomial Division Calculator

  1. Enter the dividend polynomial in the first box.
  2. Enter the divisor polynomial in the second box.
  3. Use x as the variable, such as x^3 + 2x – 5.
  4. Choose how many decimal places to show if coefficients are not whole numbers.
  5. Select Calculate Division to get the quotient, remainder, and steps.
  6. Use Copy Result if you want to save the visible answer.

Worked Example

Divide x^3 – 2x^2 + 4x – 8 by x – 2.

StepAction
1Divide the leading terms: x^3 divided by x = x^2.
2Multiply x^2 by x – 2, then subtract it from the dividend.
3Repeat with the new leading term until the remainder has lower degree than x – 2.
ResultThe quotient is x^2 + 4 and the remainder is 0.

Common Use Cases

  • Checking algebra homework that involves polynomial long division.
  • Finding a quotient and remainder before factoring a polynomial.
  • Testing whether a linear expression is a factor of a polynomial.
  • Preparing for synthetic division by first seeing the long division structure.
  • Simplifying rational polynomial expressions in algebra and precalculus.

Common Mistakes

  • Forgetting missing terms, such as entering x^3 + 1 when you meant x^3 + 0x^2 + 0x + 1. The calculator can handle missing terms, but the steps may look shorter.
  • Using a different variable such as y. This calculator uses x only.
  • Entering negative exponents. Polynomial division requires nonnegative whole number exponents.
  • Dividing by 0 or by an empty divisor. A valid divisor polynomial is required.
  • Mixing multiplication symbols in unusual ways. Use 3x^2 instead of 3*x^2 when possible.

Limitations

This calculator handles one-variable polynomials in x with real-number coefficients and nonnegative integer exponents. It does not solve equations, factor polynomials completely, or perform multivariable polynomial division. Decimal rounding only affects the displayed result, not the internal long division calculation.

Related Calculators

These tools can help with nearby algebra and arithmetic tasks:

Polynomial Division FAQ

What is polynomial division?

Polynomial division is the process of dividing one polynomial by another to find a quotient and a remainder.

What does the remainder mean?

The remainder is what is left after division stops. Its degree must be lower than the degree of the divisor.

Can this calculator show steps?

Yes. It shows each leading-term division, the polynomial being subtracted, and the new remainder.

Can I use decimals in coefficients?

Yes. You can enter coefficients such as 0.5x^2 or 2.75x, then choose how many decimal places to display.

Is synthetic division the same as polynomial long division?

No. Synthetic division is a shortcut for certain divisors, usually linear divisors. Long division works for a wider range of polynomial divisors.

(function () { var root = document.getElementById(‘cd-polynomial-division-calculator’);function onReady() { if (!root) { return; }var dividendInput = root.querySelector(‘#cd-poly-dividend’); var divisorInput = root.querySelector(‘#cd-poly-divisor’); var decimalsSelect = root.querySelector(‘#cd-poly-decimals’); var calcBtn = root.querySelector(‘#cd-poly-calc-btn’); var copyBtn = root.querySelector(‘#cd-poly-copy-btn’); var clearBtn = root.querySelector(‘#cd-poly-clear-btn’); var errorBox = root.querySelector(‘#cd-poly-error’); var mainResult = root.querySelector(‘#cd-poly-main-result’); var detailResult = root.querySelector(‘#cd-poly-detail-result’); var stepsBox = root.querySelector(‘#cd-poly-steps’); var presetButtons = root.querySelectorAll(‘[data-cd-poly-example]’); var lastCopyText = ”;var examples = { ‘1’: { dividend: ‘x^3 – 2x^2 + 4x – 8’, divisor: ‘x – 2’ }, ‘2’: { dividend: ‘2x^4 + 3x^3 – x + 6’, divisor: ‘x^2 + 1’ }, ‘3’: { dividend: ‘x^3 + 2x^2 – 5’, divisor: ‘x – 1’ } };function showError(message) { errorBox.textContent = message; errorBox.style.display = ‘block’; }function clearError() { errorBox.textContent = ”; errorBox.style.display = ‘none’; }function isPlainNumber(value) { return /^(?:\d+(?:\.\d*)?|\.\d+)$/.test(value); }function parsePolynomial(input) { var raw = String(input || ”).trim(); if (raw === ”) { throw new Error(‘Enter a polynomial before calculating.’); }var cleaned = raw.replace(/\s+/g, ”).replace(/\*/g, ”).replace(/X/g, ‘x’);if (!/^[0-9x+\-^\.]+$/.test(cleaned)) { throw new Error(‘Use only numbers, x, plus signs, minus signs, decimal points, and exponents such as x^2.’); }var firstChar = cleaned.charAt(0); if (firstChar !== ‘+’) { if (firstChar !== ‘-‘) { cleaned = ‘+’ + cleaned; } }var terms = cleaned.match(/[+\-][^+\-]+/g); if (!terms) { throw new Error(‘The polynomial format could not be read.’); }var coefficients = []; var i; for (i = 0; i = 0) { var coeffPart = body.slice(0, xIndex); var afterX = body.slice(xIndex + 1);if (coeffPart === ”) { coeff = 1; } else { if (!isPlainNumber(coeffPart)) { throw new Error(‘A coefficient is not valid. Try 3x^2 instead.’); } coeff = Number(coeffPart); }if (afterX === ”) { exp = 1; } else { if (afterX.charAt(0) !== ‘^’) { throw new Error(‘Use exponent format like x^2.’); } var expPart = afterX.slice(1); if (!/^\d+$/.test(expPart)) { throw new Error(‘Exponents must be nonnegative whole numbers.’); } exp = Number(expPart); } } else { if (!isPlainNumber(body)) { throw new Error(‘A constant term is not valid.’); } coeff = Number(body); exp = 0; }if (!isFinite(coeff)) { throw new Error(‘A coefficient is too large or invalid.’); }if (exp > 50) { throw new Error(‘Please use exponents of 50 or lower for a readable result.’); }if (typeof coefficients[exp] !== ‘number’) { coefficients[exp] = 0; } coefficients[exp] += sign * coeff; }var degree = getDegree(coefficients); if (degree < 0) { return [0]; }for (i = 0; i = 0; i -= 1) { if (Math.abs(result[i] || 0) = 0; i -= 1) { if (Math.abs(poly[i] || 0) > 0.0000000001) { return i; } } return -1; }function formatNumber(value, decimals) { var rounded = Number(value.toFixed(decimals)); if (Math.abs(rounded) < 0.0000000001) { rounded = 0; } return String(rounded); }function formatTerm(coeff, exp, decimals, firstTerm) { var absCoeff = Math.abs(coeff); var sign = coeff 0) { variableText = ‘x’; if (exp > 1) { variableText = ‘x^’ + exp; } if (Math.abs(absCoeff – 1) < 0.0000000001) { coeffText = ''; } }var body = coeffText + variableText; if (exp === 0) { body = coeffText; }if (firstTerm) { if (sign === '-') { return '-' + body; } return body; }return ' ' + sign + ' ' + body; }function formatPolynomial(poly, decimals) { var degree = getDegree(poly); if (degree = 0; i -= 1) { var coeff = poly[i] || 0; if (Math.abs(coeff) > 0.0000000001) { parts += formatTerm(coeff, i, decimals, first); first = false; } }if (parts === ”) { return ‘0’; } return parts; }function dividePolynomials(dividend, divisor, decimals) { var divisorDegree = getDegree(divisor); if (divisorDegree < 0) { throw new Error('The divisor cannot be zero.'); }var dividendDegree = getDegree(dividend); var quotient = [0]; var remainder = dividend.slice(); var steps = [];if (dividendDegree < divisorDegree) { steps.push('The dividend degree is lower than the divisor degree, so the quotient is 0 and the dividend is the remainder.'); return { quotient: quotient, remainder: trimPolynomial(remainder), steps: steps }; }quotient = []; var i; for (i = 0; i <= dividendDegree – divisorDegree; i += 1) { quotient[i] = 0; }var guard = 0; while (true) { var remainderDegree = getDegree(remainder); if (remainderDegree 120) { throw new Error(‘The division took too many steps. Please check the polynomial format.’); }var leadFactor = remainder[remainderDegree] / divisor[divisorDegree]; var expDiff = remainderDegree – divisorDegree; quotient[expDiff] = (quotient[expDiff] || 0) + leadFactor;var subtractPoly = []; for (i = 0; i <= expDiff + divisorDegree; i += 1) { subtractPoly[i] = 0; }for (i = 0; i <= divisorDegree; i += 1) { subtractPoly[i + expDiff] = (divisor[i] || 0) * leadFactor; }var leadingText = formatTerm(leadFactor, expDiff, decimals, true); var beforeText = formatPolynomial(remainder, decimals); var subtractText = formatPolynomial(subtractPoly, decimals);for (i = 0; i < subtractPoly.length; i += 1) { remainder[i] = (remainder[i] || 0) – (subtractPoly[i] || 0); }remainder = trimPolynomial(remainder); var afterText = formatPolynomial(remainder, decimals);steps.push('Divide the leading terms to get ' + leadingText + '. Subtract (' + subtractText + ') from (' + beforeText + '). New remainder: ' + afterText + '.'); }return { quotient: trimPolynomial(quotient), remainder: trimPolynomial(remainder), steps: steps }; }function renderSteps(steps) { stepsBox.innerHTML = ''; if (!steps.length) { return; }var title = document.createElement('h3'); title.textContent = 'Step by Step Work'; stepsBox.appendChild(title);var i; for (i = 0; i < steps.length; i += 1) { var item = document.createElement('div'); item.className = 'cd-step'; item.textContent = String(i + 1) + '. ' + steps[i]; stepsBox.appendChild(item); } }function calculate() { try { clearError();var decimals = Number(decimalsSelect.value); var dividend = parsePolynomial(dividendInput.value); var divisor = parsePolynomial(divisorInput.value); var result = dividePolynomials(dividend, divisor, decimals);var qText = formatPolynomial(result.quotient, decimals); var rText = formatPolynomial(result.remainder, decimals); var dText = formatPolynomial(divisor, decimals); var pText = formatPolynomial(dividend, decimals); var exact = getDegree(result.remainder) 0) { lastCopyText += ‘\nSteps:\n’ + result.steps.join(‘\n’); } } catch (err) { mainResult.textContent = ‘Check input’; detailResult.textContent = ‘The calculator needs valid one-variable polynomials in x.’; stepsBox.innerHTML = ”; lastCopyText = ”; showError(err.message || ‘Something went wrong while calculating.’); } }function copyResult() { if (lastCopyText === ”) { showError(‘Calculate a result before copying.’); return; }if (navigator.clipboard) { if (navigator.clipboard.writeText) { navigator.clipboard.writeText(lastCopyText).then(function () { clearError(); copyBtn.textContent = ‘Copied’; window.setTimeout(function () { copyBtn.textContent = ‘Copy Result’; }, 1200); }).catch(function () { fallbackCopy(); }); return; } }fallbackCopy(); }function fallbackCopy() { var area = document.createElement(‘textarea’); area.value = lastCopyText; area.setAttribute(‘readonly’, ‘readonly’); area.style.position = ‘absolute’; area.style.left = ‘-9999px’; document.body.appendChild(area); area.select(); try { document.execCommand(‘copy’); clearError(); copyBtn.textContent = ‘Copied’; window.setTimeout(function () { copyBtn.textContent = ‘Copy Result’; }, 1200); } catch (err) { showError(‘Copy failed. You can select the result text manually.’); } document.body.removeChild(area); }function clearAll() { dividendInput.value = ”; divisorInput.value = ”; decimalsSelect.value = ‘2’; mainResult.textContent = ‘Enter polynomials’; detailResult.textContent = ‘The quotient and remainder will appear here.’; stepsBox.innerHTML = ”; lastCopyText = ”; clearError(); }calcBtn.addEventListener(‘click’, calculate); copyBtn.addEventListener(‘click’, copyResult); clearBtn.addEventListener(‘click’, clearAll);var p; for (p = 0; p < presetButtons.length; p += 1) { presetButtons[p].addEventListener('click', function () { var key = this.getAttribute('data-cd-poly-example'); var selected = examples[key]; if (selected) { dividendInput.value = selected.dividend; divisorInput.value = selected.divisor; calculate(); } }); }calculate(); }if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', onReady); } else { onReady(); } }());

Similar Calculations