首頁  >  文章  >  web前端  >  在 JavaScript 中如何有效地確定一個數字是否為素數?

在 JavaScript 中如何有效地確定一個數字是否為素數?

Barbara Streisand
Barbara Streisand原創
2024-10-26 17:57:03947瀏覽

How can you efficiently determine if a number is prime in JavaScript?

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn