我有一个问题,显示javascript输出,没有任何用户操作

时间:2013-03-18 15:38:27

标签: javascript html

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

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

在确定您已找到所有素数之前,您真的必须测试这10000个数中的多少个?以<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文件时,只显示标题,脚本似乎无法运行!     

2 个答案:

答案 0 :(得分:0)

您正在导入<head>中的脚本,因此输出的位置就会出现。尝试将其移至<body>

这可能是找到素数的最慢方式。

编辑 - 另一个问题是:

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

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

答案 1 :(得分:0)

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

中加载/执行脚本