Prime Number Calculator

Prime Number Calculator

No prime numbers found in range.

'; } } else if (calculationType === 'generatePrimes') { const count = parseInt(primeCountInput.value); if (isNaN(count) || count < 1) { showError('Please enter a valid positive number of primes.'); return; } // Estimate upper bound for nth prime: n * (ln(n) + ln(ln(n))) const estimatedMax = count < 2 ? 2 : Math.ceil(count * (Math.log(count) + Math.log(Math.log(count)))); const primes = generatePrimes(estimatedMax, count); resultSummary.textContent = `Generated ${primes.length} prime numbers.`; if (primes.length > 0) { const list = document.createElement('p'); list.textContent = primes.join(', '); primeListDiv.appendChild(list); } } resultDiv.style.display = 'block'; downloadBtn.style.display = 'block'; } catch (e) { showError(`Calculation error: ${e.message}`); } }); resetBtn.addEventListener('click', () => { calculationTypeSelect.value = 'checkPrime'; singleNumberInput.value = ''; startRangeInput.value = ''; endRangeInput.value = ''; primeCountInput.value = ''; checkPrimeInput.style.display = 'block'; rangeInput.style.display = 'none'; generateInput.style.display = 'none'; resultDiv.style.display = 'none'; downloadBtn.style.display = 'none'; errorDiv.style.display = 'none'; errorDiv.textContent = ''; primeListDiv.innerHTML = ''; }); downloadBtn.addEventListener('click', () => { try { if (!window.jspdf || !window.jspdf.jsPDF) { showError('jsPDF library not available; cannot generate PDF.'); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF(); doc.setFont('Arial'); doc.setFontSize(16); doc.setTextColor('#283593'); doc.text('Prime Number Calculator Results', 20, 20); doc.setFontSize(12); doc.setTextColor('#333333'); let y = 40; const results = [resultSummary.textContent]; const primeListText = primeListDiv.textContent; if (primeListText) { results.push('Prime Numbers:'); // Split long lists into chunks for PDF const words = primeListText.split(', '); let currentLine = ''; words.forEach(word => { if ((currentLine + word).length > 80) { results.push(currentLine); currentLine = word + ', '; } else { currentLine += word + ', '; } }); if (currentLine) results.push(currentLine.slice(0, -2)); } results.forEach(line => { doc.text(line, 20, y); y += 10; }); doc.setFillColor('#e8eaf6'); doc.rect(10, 10, 190, y, 'F'); doc.save('Prime_Number_Results.pdf'); } catch (e) { showError(`PDF generation failed: ${e.message}`); } }); function showError(message) { errorDiv.textContent = message; errorDiv.style.display = 'block'; resultDiv.style.display = 'none'; downloadBtn.style.display = 'none'; primeListDiv.innerHTML = ''; }
Scroll to Top