更新此内容!我一直试图用javascript警告所有素数高达100。这是我到目前为止(我的计算机不允许我复制和粘贴由于某种原因所以我必须screencap发布) 如果你可以引导我朝着正确的方向前进,或者让我知道我失踪了什么,那将是惊人的。谢谢!
答案 0 :(得分: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
答案 1 :(得分:0)
我已经包含了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>