-3

这就是问题:如果一个整数大于 1 并且只能被 1 和自身整除,则称它为素数。例如,2、3、5 和 7 是质数,但 4、6、8 和 9 不是。a) 编写一个判断一个数是否为素数的函数。b) 在脚本中使用这个函数来确定并打印 1 到 10000 之间的所有素数。在确定找到所有素数之前,你真的需要测试这 10000 个数字中的多少?在 a 中显示结果。

这是我的代码:

function isPrime(n)
{
var  prime=true;
        if(n===1 || n===0)
        {

            prime= false;
        }

        if(n==2)
        {
            prime= true;
        }
        else
        {
            for(var i=2;i<n;i++)
            {
                if(n%i===0)
                {
                    prime= false;
                }
            }
        }
        return prime;
}
function printPrimes()
{

    for(var i=0; i<=1000; i++)
    {
        if(isPrime(i)===true)
        {
            document.writeln("<p>" + i + "</p>");
        }
    }

}
printPrimes();

这是我的html:

<!DOCTYPE html>
<html>
    <head>
    </head>
        <body>
            <h1> Prime numbers between 1 and 1000 are: </h1>
            <textarea rows="10" cols="15">
            <script src="prime.js" type="text/javascript"> </script>
            </textarea>
        </body>
</html>

当我在 chrome 上打开 html 文件时,只有标题显示脚本似乎没有运行!并且只有脚本标签按原样显示在文本区域中显示在文本区域中,我尝试了一百万件没有用的东西,我想如何在 TEXTAREA 标签中输出脚本??????

我试过这个但还是不行:

 function printPrimes()
{
    var str="";
    for(var i=0; i<=1000; i++)
    {
        if(isPrime(i)===true)
        {
            str+=i +" /n";
        }
    }
    document.getElementById('primes').value=str;

}
printPrimes();

html:

<!DOCTYPE html>
<html>
    <head>
    </head>
        <body>
        `   <script src="prime.js" type="text/javascript"> </script>
            <h1> Prime numbers between 1 and 1000 are: </h1>
            <textarea id="primes" rows="40" cols="50">

            </textarea>
        </body>
</html>

所以很抱歉重新发布和轻微编辑,不会再发生,我是新来的堆栈溢出并且已经被禁止了,如果我的禁令可以解除,我只会问更多问题,如果我已经做过研究并且如果我跌到谷底并且似乎没有任何工作。我没有注意到编辑帖子,发布重复是一个愚蠢的错误,希望取消投票,我是脚本新手,堆栈溢出新手,我没有意识到 id 因愚蠢的问题而被禁止。对不起

4

3 回答 3

2

您可以使用 javascriptsdocument.getElementById来获取textarea(当然您必须为 textarea 提供一些 id)。然后更改value此文本区域。看看这个答案

于 2013-03-19T14:43:53.600 回答
0

文本区域内不能有 HTML。

于 2013-03-19T14:45:55.947 回答
0

在这里尝试以下代码。注意更新后的 textarea 元素、JS 引用的位置和值的输出。

JS文件

function isPrime(n){
    var  prime=true;
    if(n===1 || n===0)
    {

        prime= false;
    }

    if(n==2)
    {
        prime= true;
    }
    else
    {
        for(var i=2;i<n;i++)
        {
            if(n%i===0)
            {
                prime= false;
            }
        }
    }
    return prime;
}
function printPrimes()
{

  for(var i=0; i<=1000; i++)
  {
      if(isPrime(i)===true)
      {
          //document.writeln("<p>" + i + "</p>");
          document.getElementById('primeNumbers').value = document.getElementById('primeNumbers').value + i + '\n'; 
      }
  }

}
printPrimes();

HTML

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <h1> Prime numbers between 1 and 1000 are: </h1>
        <textarea rows="10" cols="15" id="primeNumbers"></textarea>
        <script src="prime.js" type="text/javascript"> </script>
    </body>
</html>
于 2013-03-19T14:59:41.387 回答