2015-08-19 128 views
0

更新時間!我一直試圖警告所有素數達到100的JavaScript。這是我到目前爲止(我的電腦不允許我複製和粘貼出於某種原因,所以我不得不屏幕上張貼) 如果你能指導我在正確的方向,或讓我知道我失蹤,那會很棒。謝謝! enter image description here我在這裏做錯了什麼? Prime with Javascript

+2

請不要張貼您的源代碼的圖片。發佈代碼本身的文本。 – Kenster

回答

0

一個很好的和典型的實現,雖然不是最有效的課程:

function primenum(num){ 
    if(num < 2) return false // 0 and 1 are not primes 

    for(var i=2;i*i<=num;i++){ 

     if(num % i == 0){ 
      return false; // if we find a divisor up to the square of the number, then its not prime and we stop checking 
     } 

    } 
    return true; // if we couldn´t find a divisor, then it means its a prime number 
} 

for(var i=0;i<100;i++){ 
    if(primenum(i) == true) console.log(i) // if its prime, display on console 
} 

編輯:如果你想1和100之間的預警所有的素數,我們可以將它們存儲陣列上後來告訴他們:

primes = []; 
for(var i=0;i<100;i++){ 
    if(primenum(i) == true){ 
     primes.push(i); 
    } 
} 
alert(primes) 

至於爲什麼我們檢查到數的平方:Why do we check up to sqrt

+0

我很感謝幫助,謝謝!我更新了我的代碼,但不知道如何提醒它/我做錯了什麼! – user3247128

+0

@ user3247128如果使用alert(i)更改console.log(i),它將提示素數,但會爲每個素數提供一個窗口,這會影響很多。只要將數組中的素數存儲一次,就會提供警報示例 – juvian

0

I H大家都包括JavaScript來接受用戶的輸入並在所選範圍內找到素數。

function primeNumbers(){ 
     var min=document.getElementById("minNumber").value; 
     var max=document.getElementById("maxNumber").value; 
     var Nprime=new Array(); 
     for(var i=min,k=0;i<=max;i++){ 
     if(prime(i)){ 
      Nprime[k]=i; 
      k++; 
     } 
    } 
    document.write("Prime numbers are: "+Nprime); 

}

function prime(num){ 
     if(num < 2) 
      return false; // 0 and 1 are not primes 
     for(var j=2;j<=num/2;j++){ 
      if(num % j === 0){ 
       return false; //If we find a divisor, then return false 
       } 
     } 
    return true; // prime number found 
    } 


<body> 
<p> Finding prime numbers between </p> <input type="number" id="minNumber"> and <input type="number" id="maxNumber">. 
<p><input type="button" value="Show now" onclick="primeNumbers()"> 
</body>