这是问题:如果一个整数大于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文件时,只显示标题,脚本似乎无法运行!
答案 0 :(得分:0)
您正在导入<head>
中的脚本,因此输出的位置就会出现。尝试将其移至<body>
。
这可能是找到素数的最慢方式。
编辑 - 另一个问题是:
for(int i=2;i<n;i++)
JavaScript中没有int
个关键字 - 它是var
。这将导致语法错误,该错误将显示在错误控制台中。也没有boolean
关键字(“prime”的声明)。在进行任何HTML / JavaScript开发时保持错误控制台处于打开状态非常重要。
答案 1 :(得分:0)
这是因为您试图将<textarea>
写入<head>
元素。尝试在<body>
。