javascript - Number(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>
输出:
499 491 487 479 467 463 461 457 449 443 439 433 431 421 419 409 401 397 389 383 379 373 367 359 353 349 347 337 331 317 313 311 307 293 283 281 277 271 269 263 257 251 241 239 233 229 227 223 211 199 197 193 191 181 179 179 173 167 163 157 151 149 149 139 137 137 131 127 113 109 107 103 101 97 89 89 83 79 79 73 71 67 67 61 59 59 53 47 43 41 37 37 31 29 31 29 31 29 23 19 19 19 17 17 17 17 17 17 17 17 17 17 17 17 17 7 5 3 2 2 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;
}
推荐阅读
- reactjs - GraphQL + Redux + JWT 用户认证
- c - 为什么将 char 变量的地址传递给标准的 read() 函数?
- javascript - 从 .map 函数中获取 key{index} 属性以响应被点击的元素
- c++ - C++ 类获取输入
- r - 如何在 Tanakaplot 上绘制点(例如绘制 ggplot)?
- vb.net - 在 vb.net 中使用公钥加密与通过 jsencrypt 加密产生的结果大不相同
- swift - ToolbarItem 中按钮中图像的可访问性
- azure - 我需要更改 Azure 应用服务中的哪些设置以允许在 App_Offline 中使用 base64 图像?
- ssh - ssh:连接到主机 4.12.678.96 端口 22:操作超时
- r - 如果另一列中的值在列表中,则更改一列中的值 [R]