Javascript 使用While和For循环查找上界之间的所有素数的程序

Javascript 使用While和For循环查找上界之间的所有素数的程序,javascript,loops,for-loop,while-loop,Javascript,Loops,For Loop,While Loop,我的for循环有点问题。我的while循环工作正常,但我需要有关嵌套循环的帮助。循环的概念对我来说是相当新的,我不太明白我在代码中做了什么。任何帮助都将不胜感激 var number = parseInt(window.prompt("Enter number: ", "")); var divisor; var check; var prime = true; var num; document.write("The factors of ", number, " are: </br&

我的for循环有点问题。我的while循环工作正常,但我需要有关嵌套循环的帮助。循环的概念对我来说是相当新的,我不太明白我在代码中做了什么。任何帮助都将不胜感激

var number = parseInt(window.prompt("Enter number: ", ""));
var divisor;
var check;
var prime = true;
var num;

document.write("The factors of ", number, " are: </br>");
divisor = 1;

while (divisor <= number) {
    check = number % divisor;
    if (check == 0) {
        document.write(divisor, " ");
        if ((divisor != 1) && (divisor != number)) {
            prime = false;
        }
    }

    divisor = divisor + 1;
}

if (prime == true) {
    document.write("<br>The number is prime");
} else {
    document.write("<br> The number is composite");
}
var number=parseInt(窗口提示(“输入编号:”,”);
var因子;
var检查;
var prime=true;
var-num;
文件。写下(“的因素”,数字,“是:
”; 除数=1;
while(除数让你兴奋的东西。这个程序使用for和while来检查素数。for循环用作if检查,但这会起作用。你还应该尝试使用函数来最小化代码

var number = parseInt(window.prompt("Enter number: ", ""));
var result = isPrime(number);

function isPrime(number) {
    var start = 2;
    //USING WHILE
    while (start <= Math.sqrt(number)) {
       if (number % start++ < 1) return false;
    }
    return number > 1;
}

//USING FOR 
for (;result;){ 
   document.write("<br>The number is prime");
}
if(!result) {
   document.write("<br>The number is NOT prime");
}
var number=parseInt(窗口提示(“输入编号:”,”);
var结果=isPrime(数字);
函数isPrime(数字){
var启动=2;
//使用时
同时(开始1;
}
//用于
对于(;结果;){
写(“
数字是素数”); } 如果(!结果){ 写(“
数字不是素数”); }
作为一名新人,我认为您可能需要中断while循环,因为您只需检查一下它是否为prime。就像这样:

if((divisor != 1) && (divisor != number)){
prime= false;
break;
}

我也不知道你做了什么。什么给你带来了麻烦?离题了,但你只需要检查数字的平方根,而不是数字本身。虽然这意味着输出不再包括所有除数的列表。是的。但如果只是为了检查,就可以了