Online Arithmetic Progression Calculator

Arithmetic Progression Calculator

Calculate terms, sums, and other properties of an AP series.

Result

${key}: ${value}

`).join(''); resultDiv.innerHTML = `

${title}

Formula: ${formula}

${inputsHTML}

Result: ${result}

`; lastResult = { title, formula, inputs, result }; }; // Nth Term Logic const calcNthBtn = document.getElementById('calc-nth-btn'); calcNthBtn.addEventListener('click', () => { const a = parseFloat(document.getElementById('nth-a').value); const d = parseFloat(document.getElementById('nth-d').value); const n = parseInt(document.getElementById('nth-n').value, 10); if (isNaN(a) || isNaN(d) || isNaN(n)) return; const result = a + (n - 1) * d; displayResult('nth-results', 'Nth Term (an)', 'a + (n - 1) * d', { a, d, n }, result); }); // Sum Logic const calcSumBtn = document.getElementById('calc-sum-btn'); calcSumBtn.addEventListener('click', () => { const a = parseFloat(document.getElementById('sum-a').value); const d = parseFloat(document.getElementById('sum-d').value); const n = parseInt(document.getElementById('sum-n').value, 10); if (isNaN(a) || isNaN(d) || isNaN(n)) return; const result = (n / 2) * (2 * a + (n - 1) * d); displayResult('sum-results', 'Sum of AP (Sn)', 'n/2 * (2a + (n-1)d)', { a, d, n }, result); }); // Find n or d Logic const findInputsDiv = document.getElementById('find-inputs'); const findWhatRadios = document.querySelectorAll('input[name="find-what"]'); const calcFindBtn = document.getElementById('calc-find-btn'); const findResultsDiv = document.getElementById('find-results'); const renderFindInputs = () => { const selected = document.querySelector('input[name="find-what"]:checked').value; if (selected === 'n') { findInputsDiv.innerHTML = `
`; } else { // find 'd' findInputsDiv.innerHTML = `
`; } }; findWhatRadios.forEach(radio => radio.addEventListener('change', renderFindInputs)); calcFindBtn.addEventListener('click', () => { const selected = document.querySelector('input[name="find-what"]:checked').value; if (selected === 'n') { const a = parseFloat(document.getElementById('find-n-a').value); const d = parseFloat(document.getElementById('find-n-d').value); const an = parseFloat(document.getElementById('find-n-an').value); if (isNaN(a) || isNaN(d) || isNaN(an) || d === 0) { findResultsDiv.textContent = 'Invalid input. Ensure d is not zero.'; return; } const result = ((an - a) / d) + 1; if (result < 1 || result % 1 !== 0) { findResultsDiv.textContent = 'No integer solution for n exists with these values.'; return; } displayResult('find-results', 'Number of Terms (n)', '((an - a) / d) + 1', { a, d, an }, result); } else { // find 'd' const a = parseFloat(document.getElementById('find-d-a').value); const n = parseInt(document.getElementById('find-d-n').value, 10); const an = parseFloat(document.getElementById('find-d-an').value); if (isNaN(a) || isNaN(n) || isNaN(an) || n <= 1) { findResultsDiv.textContent = 'Invalid input. Ensure n is greater than 1.'; return; } const result = (an - a) / (n - 1); displayResult('find-results', 'Common Difference (d)', '(an - a) / (n - 1)', { a, n, an }, result); } }); // --- PDF DOWNLOAD --- downloadPdfBtn.addEventListener('click', () => { if (!lastResult) { alert("Please perform a calculation before downloading."); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF(); doc.setFontSize(22); doc.text('Arithmetic Progression Calculation', 105, 20, { align: 'center' }); doc.setFontSize(16); doc.text(lastResult.title, 105, 28, { align: 'center' }); const tableBody = Object.entries(lastResult.inputs).map(([key, value]) => [key.toUpperCase(), value]); doc.autoTable({ startY: 40, head: [['Parameter', 'Value']], body: tableBody, theme: 'striped' }); let finalY = doc.lastAutoTable.finalY + 15; doc.setFontSize(12); doc.text(`Formula Used: ${lastResult.formula}`, 14, finalY); finalY += 10; doc.setFontSize(14); doc.setFont(undefined, 'bold'); doc.text(`Final Result: ${lastResult.result}`, 14, finalY); doc.save('ap-calculation-results.pdf'); }); // --- INITIALIZATION --- renderFindInputs(); });
Scroll to Top