0

这就是问题:如果一个整数大于 1 并且只能被 1 和自身整除,则称它为素数。例如,2、3、5 和 7 是质数,但 4、6、8 和 9 不是。

a) 编写一个判断一个数是否为素数的函数。b) 在一个脚本中使用这个函数来确定并打印 1 到 10000 之间的所有素数。

在确定找到所有素数之前,您真的需要测试这 10000 个数字中的多少?在 a 中显示结果<textrarea>

这是我的代码:

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

                prime= false;
            }

            if(n==2)
            {
                prime= true;
            }
            else
            {
                for(int i=2;i<n;i++)
                {
                    if(n%i==0)
                    {
                        prime= false;
                    }
                }
            }
            return prime;
    }
    function printPrimes()
    {
        document.writeln("<textarea rows="10" cols="15">");
        for(var i=0; i<=1000; i++)
        {
            if(isPrime(i)==true)
            {
                document.writeln("<p>" + i + "</p>");
            }
        }
        document.writeln("</textarea>");
    }
    printPrimes();

这是我的html:

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

当我在 chrome 上打开 html 文件时,只有标题显示脚本似乎没有运行!

4

2 回答 2

0

您正在将脚本导入到 中<head>,这就是它的输出所在。尝试将其移至<body>.

这可能是寻找素数最慢的方法。

编辑——另一个问题是:

            for(int i=2;i<n;i++)

JavaScript中没有int关键字 - 它是var. 这将导致语法错误,该错误将显示在错误控制台中。也没有boolean关键字(“素数”的声明)。在进行任何 HTML/JavaScript 开发时,保持错误控制台打开是很重要的。

于 2013-03-18T15:41:16.110 回答
0

这是因为您正在尝试将 写入<textarea>元素<head>。尝试在<body>.

于 2013-03-18T15:41:26.857 回答