繁体   English   中英

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

[英]Program that uses While and For loops to find all Prime Numbers between an upper Bound

我在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");
}

让您兴奋的东西。 该程序用于for和while检查素数。 for循环用作if-check,但这将起作用。 您还应该尝试使用函数来最小化代码。

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");
}

作为一个新手,我认为您可能需要在while循环中稍作休息,因为您只需要检查一次是否为素数即可。就像这样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM