Javascript 如何在每个表行上打印10个素数
我正在编写一个JavaScript,它在一个由10列组成的表中打印1到999之间的素数 一旦计数器变量达到10的值(意味着10个单元格已添加到当前行),然后我打印Javascript 如何在每个表行上打印10个素数,javascript,html,Javascript,Html,我正在编写一个JavaScript,它在一个由10列组成的表中打印1到999之间的素数 一旦计数器变量达到10的值(意味着10个单元格已添加到当前行),然后我打印以启动新行并将变量重置为0。 我一直在尝试,我设法打印出表中的素数,但现在每10列创建一个新行是我失败的地方 任何协助都将不胜感激 下面是我的代码 <html> <head> <script language="javascript"> document
以启动新行并将变量重置为0。
我一直在尝试,我设法打印出表中的素数,但现在每10列创建一个新行是我失败的地方
任何协助都将不胜感激
下面是我的代码
<html>
<head>
<script language="javascript">
document.write("<table border='1'>");
document.write("<tr>");
for(n = 0 ; n < 1000; n++){
var x=1;
if(n==0 || n==1) x=0;
for(i=2;i<n;i++)
{
if(n%i==0)
{
x=0;
break;
}
}
if(x==1)
{
document.write("<td>");
// if prime print the numbers
document.write(n);
document.write("</td>");
}
else
{
// if not prime number do nothing
}
}
document.write("</table>");
</script>
</head>
<body>
</body>
</html>
文件。填写(“”);
文件。填写(“”);
对于(n=0;n<1000;n++){
var x=1;
如果(n==0 | | n==1)x=0;
对于(i=2;i,您可以使用筛算法,例如1000
function getPrimes(max) {
var sieve = [], i, j, primes = [];
for (i = 2; i <= max; ++i) {
if (!sieve[i]) {
// i has not been marked -- it is prime
primes.push(i);
for (j = i << 1; j <= max; j += i) {
sieve[j] = true;
}
}
}
return primes;
}
函数getPrimes(最大值){
变量筛=[],i,j,素数=[];
对于(i=2;i在循环之前创建计数器:
var cnt = 0;
在写出单元格之前,增加计数器并检查数值:
if(x==1)
{
cnt++;
if (cnt == 10)
{
cnt = 0;
document.write("</tr><tr>");
}
document.write("<td>");
document.write(n);
document.write("</td>");
}
if(x==1)
{
cnt++;
如果(cnt==10)
{
cnt=0;
文件。填写(“”);
}
文件。填写(“”);
文件。写入(n);
文件。填写(“”);
}
此外,您在关闭表之前忘记关闭最后一行:
document.write("</tr>");
document.write("</table>");
document.write(“”);
文件。填写(“”);
我删除了你的else
部分,并使用ok
来计算素数。
如果此计数器为10、20、30,…(ok%10==0&&ok>0
),则我使用
关闭实际行,并使用
打开新行
文件。填写(“”);
var-ok=0;
对于(n=0;n<1000;n++){
var x=1;
如果(n==0 | | n==1)x=0;
对于(i=2;i 0){
文件。填写(“”);
}
文件。填写(“”);
文件。写入(n);
文件。填写(“”);
ok++;
}
}
文件。填写(“”);
这闻起来有点像家庭作业。素数生成得很清楚,但如何在每10列之后打破该表是我的问题。循环它们并取indexI的mod 10不知道该说什么,但对我来说,u是一颗星星
document.write("</tr>");
document.write("</table>");
<html>
<head>
<script language="javascript">
document.write("<table border='1'><tr>");
var ok = 0 ;
for(n = 0 ; n < 1000; n++) {
var x=1;
if(n==0 || n==1) x=0;
for(i=2 ; i<n ; i++) {
if(n%i==0) {
x=0;
break;
}
}
if(x==1) {
if ( ok % 10 === 0 && ok > 0 ) {
document.write("</tr><tr>");
}
document.write("<td>");
document.write(n);
document.write("</td>");
ok++;
}
}
document.write("</tr></table>");
</script>
</head>
<body>
</body>
</html>