如何显示素数#和#x27;使用JavaScript在表中创建

如何显示素数#和#x27;使用JavaScript在表中创建,javascript,html,numbers,tabular,Javascript,Html,Numbers,Tabular,我试图在表格中显示1-999之间的素数,但我在网上或其他任何地方都找不到简单的答案 这是书中的问题: 素数是一个只能被自身除的数 或者一个接一个。素数的例子包括1、3、5、13和17。 编写一个脚本,在一个数组中打印介于1和999之间的素数 由10列组成的表。您需要使用几个循环语句和条件语句来测试所有除法的可能性。使用 document.write()语句创建表元素和 计数器变量创建表,使其由10列组成。 计数器变量应以初始值0开始,并为 每次代码识别素数时递增一 并在表格单元格中打印。一旦计数

我试图在表格中显示1-999之间的素数,但我在网上或其他任何地方都找不到简单的答案

这是书中的问题:

素数是一个只能被自身除的数 或者一个接一个。素数的例子包括1、3、5、13和17。 编写一个脚本,在一个数组中打印介于1和999之间的素数 由10列组成的表。您需要使用几个循环语句和条件语句来测试所有除法的可能性。使用 document.write()语句创建表元素和 计数器变量创建表,使其由10列组成。 计数器变量应以初始值0开始,并为 每次代码识别素数时递增一 并在表格单元格中打印。一旦计数器变量达到某个值 为10(表示已将10个单元格添加到当前行), 打印
以开始新行并将变量重置为0。拯救 该文档的名称为PrimeNumbers.html


非常感谢您的帮助!我真的被这个问题困住了。

我要回答这个问题,告诉你应该怎么做,因为你的那本书很糟糕

首先,不要使用
文档。编写
。这是一个过时的功能,存在许多更好的替代方案

首先,让我们定义一个函数来测试一个数字是否为素数:

function isPrime(n) {
    if( n < 2) return false;
    // a number is prime if it is divisible only by 1 and itself.
    // so, let's check it
    var rt = Math.sqrt(n), i;
    for( i=2; i<=rt; i++) {
        if( n%i == 0) {
            // the number is divisible by something else.
            return false;
        }
    }
    return true;
}
我还定义了我们需要的变量。现在我们只需循环一下,看看我们得到了什么:

for( i=2; i<1000; i++) { // we can start at 2, because as I said earlier 1 is not prime
    if( isPrime(i)) {
        // if the number of found numbers is a multiple of 10, start a new row
        // the first prime we find will be "number 0", which is divisible by 10.
        if( found % 10 == 0) tr = tbd.appendChild(document.createElement('tr'));
        td = tr.appendChild(document.createElement('td'));
        td.appendChild(document.createTextNode(i));
        found++;
    }
}
最后,我们将表添加到页面:

document.body.appendChild(tbl);

完成了

我要回答这个问题,告诉你应该怎么做,因为你的那本书不好

首先,不要使用
文档。编写
。这是一个过时的功能,存在许多更好的替代方案

首先,让我们定义一个函数来测试一个数字是否为素数:

function isPrime(n) {
    if( n < 2) return false;
    // a number is prime if it is divisible only by 1 and itself.
    // so, let's check it
    var rt = Math.sqrt(n), i;
    for( i=2; i<=rt; i++) {
        if( n%i == 0) {
            // the number is divisible by something else.
            return false;
        }
    }
    return true;
}
我还定义了我们需要的变量。现在我们只需循环一下,看看我们得到了什么:

for( i=2; i<1000; i++) { // we can start at 2, because as I said earlier 1 is not prime
    if( isPrime(i)) {
        // if the number of found numbers is a multiple of 10, start a new row
        // the first prime we find will be "number 0", which is divisible by 10.
        if( found % 10 == 0) tr = tbd.appendChild(document.createElement('tr'));
        td = tr.appendChild(document.createElement('td'));
        td.appendChild(document.createTextNode(i));
        found++;
    }
}
最后,我们将表添加到页面:

document.body.appendChild(tbl);

完成了

下面是一个简单的示例

vari,
首要的
上限=999,
下限=1,
N
对于(n=下+1;n<上;n++){
素数=1;
对于(i=2;i

将这些值附加到表中。

以下是获取

vari,
首要的
上限=999,
下限=1,
N
对于(n=下+1;n<上;n++){
素数=1;
对于(i=2;i

将这些值附加到表中。

仅获取素数:

function is_prime(n)
{
    if ((n < 2) || ((n % 2) == 0)) {
        return (n == 2);
    }

    for (f = 3; (f * f) <= n; f += 2) {
        if ((n % f) == 0) {
            return false;
        }
    }

    return true;
}

var primes = [];

for (n = 1; n < 1000; n++) {
    if (is_prime(n)) {
        primes.push(n);
    }
}

console.log(primes);
函数为素数(n)
{
如果((n<2)| |((n%2)==0)){
返回值(n==2);
}

对于(f=3;(f*f),仅为了得到素数:

function is_prime(n)
{
    if ((n < 2) || ((n % 2) == 0)) {
        return (n == 2);
    }

    for (f = 3; (f * f) <= n; f += 2) {
        if ((n % f) == 0) {
            return false;
        }
    }

    return true;
}

var primes = [];

for (n = 1; n < 1000; n++) {
    if (is_prime(n)) {
        primes.push(n);
    }
}

console.log(primes);
函数为素数(n)
{
如果((n<2)| |((n%2)==0)){
返回值(n==2);
}

对于(f=3;(f*f)似乎是理论,试着用你迄今为止尝试过的代码对你的问题给出一个精确的解释。1不是质数。我真的不知道从哪里开始。这只是我做JavaScript的第三周。而且,任何建议你使用
文档的书。写
都应该被神圣的火焰烧掉。欢迎来到堆栈溢出!请请确保在发布之前搜索类似问题-看起来像此问题的海报()我试着按照你的书中告诉你的去做,答案显示了各种筛选方法,这些方法会更好!似乎是理论,试着用你迄今为止尝试过的代码对你的问题给出精确的解释。1不是质数。我真的不确定从哪里开始。这只是我做JavaScript的第三周。而且,任何一本书都不会hat建议您使用
文档。write
应该用圣火焚烧。欢迎使用Stack Overflow!请确保在发布之前搜索类似问题-看起来像此问题的海报()我试着按照你的书中告诉你的去做,答案显示了各种筛选方法,它们会更好!出于效率原因,你可能应该学习一些基础数学:例如,当测试11是否为素数时,没有必要看你是否能将其除以4、5或6……或者确实是任何大于其平方的东西ot.出于效率的原因,你可能应该学习一些基础数学:例如,当测试11是否为素数时,没有必要看你是否可以将它除以4、5、6……或者甚至任何大于其平方根的东西。+1我喜欢你的
isPrime()的效率
方法和小提琴非常棒。+1我喜欢你的
iPrime()的效率
方法和小提琴棒棒极了。预计算正在测试的数字的平方根比重复计算当前除数的平方更有效。预计算正在测试的数字的平方根比重复计算当前除数的平方更有效。