在 JavaScript 中高效驗證素數
在電腦程式設計中,決定給定數字是否是素數是一項基本任務。質數是大於 1 的正整數,除了 1 和它本身之外沒有正因數。
檢查素性的一種流行方法涉及埃拉托斯特尼篩法。然而,出於效能考量,可以採用更有效的方法,如以下JavaScript 實作所示:
let inputValue = 7; let isPrime = inputValue == 1 ? false : true; // Because 1 is not prime for (let i = 2; i < inputValue; i++) { inputValue % i == 0 ? isPrime *= false : isPrime *= true; } alert(`${inputValue} is ${isPrime ? 'prime' : 'not prime'} number`);
時間和空間複雜度分析
時間上述演算法的複雜度為O(sqrt(n)),其中n代表輸入值。這是因為循環會迭代所有整數,直到輸入數字的平方根,這是對檢查直至 n 的所有整數的重大最佳化。
空間複雜度為 O(1),因為除了原始變數之外,它不需要任何額外的資料結構。
替代方法
在JavaScript 中檢查素數的替代語法是:
const isPrime = num => { for (let i = 2, s = Math.sqrt(num); i <= s; i++) { if (num % i === 0) return false; } return num > 1; }
這種方法實現了與前一種方法相同的時間和空間複雜度,同時利用了更簡潔的箭頭函數語法。
以上是在 JavaScript 中如何有效地確定一個數字是否為素數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!