如何显示在给定极限内存在的所有素数

How to display all prime numbers that exist in the given limits

本文关键字:存在 内存 极限 何显示 显示      更新时间:2023-09-26

创建一个HTML页面,该页面接受用户在文本字段中输入的10到120.当用户按下"显示"按钮时,您在JavaScript中创建的函数应该能够显示介于1和120之间的所有素数。

示例

输入整数:20

函数应返回:1, 2, 3, 5, 7, 11, 13, 17, 19

function primeNumbers(){
var p;
var n = document.primeForm.primeText.value;
var d;
var x;
var prime;
var displayAll = 2 + " ";
for(p = 3; p <= n; p = p+2){
    x = Math.sqrt(p);
    prime=1;
    for(d = 3; prime && (d <= x); d = d+2)
    if((p%d) == 0)
        prime = 0;
    else
        prime = 1;
    if(prime == 1){ 
        displayAll = displayAll + p + " ";
    }
}
document.primeForm.primeArea.value = displayAll;

}​

但它可以显示超过120:(

for循环是一切发生的地方。因此,如果该值超出了您想要的范围,则不允许执行for循环。为此,请在for循环周围放置一个if语句。

由于您只计划使用这些数字一次,因此无论您是直接在if语句中输入min/max,还是创建一个变量来保存该值,都无关紧要。大多数人建议将所有变量放在首位,以防你需要改变范围:这样更容易找到它们。

关于if语句:n是是否执行for循环的决定因素。以下是声明:if (n >= 10 && n <= 120) { insert the for loop here }。您所要做的就是检查输入是否大于或等于10,并检查输入是否小于或等于120。

注意:如果不希望显示任何内容,请在if语句中输出结果的for循环之后包含一行。

虽然Rhyono的建议会起作用,因为除非n在10到120之间,否则不会发生任何事情,请记住,这是在一个交互式页面上,因此给用户适当的反馈是非常重要的。

当人们点击网页上的一个按钮时,他们期待着发生一些事情。出于这个原因,我建议你在这里采取不同的方法,比如这样:

function displayClicked()
{
    var n = document.primeForm.primeText.value;
    if (n < 10 || n > 120)
    {
        // Display an appropriate error to the user like:
        // "n must be between 10 and 120."
    }
    else
    {
        primeNumbers(n);
    }
}

使用这种方法,当用户输入一个无效的数字时,他们会收到有用的反馈,而不是什么都不发生。