微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数字i在下面的代码中传递给函数有人可以解释循环在代码中的工作方式

如何解决数字i在下面的代码中传递给函数有人可以解释循环在代码中的工作方式

代码

let para = document.createElement('p');

function isPrime(num) {
  for (let z = 2; z < num; z++) {
    if (num % z === 0) {
      return false;
    }
  }

  return true;
}

for (i; i > 1; i--) {
  if (isPrime(i)) {
    para.textContent += `${i} `;
  }
}

let section = document.querySelector('section');
section.appendChild(para);
<section></section>

输出

499491487479479467463461457449449443439433431421419409401 397 389 383 379 373 367 359 353 353 349 347 337 331 317 313 311 307 293 283281277271269263263257251241241239233229227223211199197 193191181179173167167163157151149139137137131127113109107 103101 97 89 83 79 73 71 67 61 59 53 47 43 41 37 31 29 23 19 17 13 11 7 5 3 2

解决方法

通过您的评论,我可以看到,实际上您是在问:“ 代码如何检查数字是否为素数”。 因此,一开始我们应该说什么是“素数”。

Every natural number has both 1 and itself as a divisor. If it has any other divisor,it cannot be prime. ~Wikipedia

因此,如果数字 num 1 num 之间有除数,则isPrime()函数应返回 false 。

因此,这就是您的代码寻找 1 num 之间的每个整数的原因:

for (let z = 2; z < num; z++)

但是如何检查数字 z 是否是数字 num 的除数? 要检查它,您必须计算除法余数。如果为零,则 z 是数字 num 的除数。

当我们检查所有数字时,它们都不是 num 的除数,我们可以说 num 是质数,因为它没有除数在1和自身之间。

function isPrime(num) {
  for (let z = 2; z < num; z++) {
    if (num % z === 0) {
      return false;
    }
  }

  return true;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。