簡體   English   中英

如何通過結合 JavaScript 中的兩個函數來確定給定數是否為漢明數?

[英]How to determine if given number is Hamming number by combining two functions in JavaScript?

目標是確定一個數字是否是漢明數?眾所周知,漢明數是一個僅包含 2. 3 和 5 作為因子的數字,這意味着一個數字不能包含任何大於 5 的素數,所以我創建了確定數字是否為素數的 function isPrimeNumber? 然后我創建了 function 來確定一個數字是否包含因子 2、3 和 5?!

function isPrimeNumber(n){
    if(n===1){
        return true;
    }else if((n%1!==0)||(n<=0)){
        return false;
    }else{
    for (var i=2; i<n; i++){
        if (n%i===0)
            return false;
        }
        return true;
    }
}

function isHamming(n){
    if(((n%2===0)||(n%3===0)||(n%5===0))){
        return true;
    }else if((isPrimeNumber(n)===true)&&(n>=7)){
        return false;
    }else{
        return false;
    }
}

想結合這兩個函數來確定輸入的數字是否是漢明數?!

  • 在給定的實現中,素數檢查沒有貢獻任何有用的東西並且具有可怕的時間復雜度 O(n)。
  • 僅僅證明這個數字是 2、3 或 5 的倍數是不夠的。還必須證明不包含其他因素。 (示例:14 不是素數,包含因數 2 但也包含 7 -> 沒有漢明數)
  • 我認為沒有其他選擇:您必須依次除以 2、3 和 5(只要包含每個因子),然后查看是否達到 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM