这就是问题:如果一个整数大于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文件时,只显示了标题,脚本似乎没有运行!
发布于 2013-03-18 23:41:16
您将在<head>中导入脚本,因此它的输出将放入该位置。尝试将其移动到<body>。
这可能是寻找素数的最慢方法。
编辑-另一个问题是:
for(int i=2;i<n;i++)JavaScript中没有int关键字-它是var。这将导致语法错误,它将显示在错误控制台中。也没有素数关键字(声明为“boolean”)。在进行任何HTML/JavaScript开发时,保持错误控制台处于打开状态非常重要。
发布于 2013-03-18 23:41:27
这是因为您正在尝试将<textarea>写入<head>元素。尝试在<body>中加载/执行脚本。
https://stackoverflow.com/questions/15480801
复制相似问题