輸出質數的方法改進

來源:互聯網
上載者:User

閑來看了一篇部落格:閑聊質數,看後自己動手研究了輸出質數的方法,計算質數的效率有所提高.

下面是改進後的代碼:

使用索引儲存質數
<!DOCTYPE HTML><html><head>    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />    <title>prime</title>    <style>        #wrap{            width:320px;            margin:0 auto;            text-align: center;        }        #output{            text-align:left;        }        var{            color:red;        }    </style></head><body><div id="wrap">    <h1>算質數</h1>    <br>    <div>        <input id="max" type="text" />以內的質數        <input type="button" id="button" value="計算" />    </div>    <br>    <div id="output"></div></div><script>button.onclick = function() {    var value = max.value;    output.innerHTML = "<var>計算中...</var>";    if (value) {        //擷取質數數組        var startTime = (new Date()).getTime();        var arr = getPrime2(parseInt(value));        var nowTime = (new Date()).getTime();        var time = (nowTime - startTime) / 1000;        //        var str = arrToString(arr);        str = "<strong>" + value + "</strong> 以內的質數有<strong> " + arr.length + " </strong>個:<var>(計算耗時" + time + "秒)</var><br>" + str;        //        output.innerHTML = str;        } else {        output.innerHTML = "<var>請輸入素數的範圍</var>";    }}function arrToString(arr) { //數組轉化為字串    return arr.join(" ");}function getPrime2(max) { //擷取max以內的質數    var prime = [];    for (var i = 2; i <= max; i++) {        if (isPrimeNum(i, prime)) {            prime.push(i);        }    }    return prime;}function isPrimeNum(n, arr) {    if (n < 2) {        return false;    }    if (n == 2) {        return true;    }    if (!arr || !arr.length) {        return false;    }    for (var p = 0; p < arr.length; p++) {        if (n % arr[p] == 0) {            return false;        }    }    return true;}</script></body></html>

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.