如何解决数字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 举报,一经查实,本站将立刻删除。