gpt4 book ai didi

javascript - Prime 函数中此条件的输出是什么?

转载 作者:行者123 更新时间:2023-11-30 15:09:00 25 4
gpt4 key购买 nike

我从另一篇文章中找到了这段代码,我正试图理解这个解决方案的一部分。

function sumPrimes(n) {
function isPrime(num) {
for ( var i = 2; i < num; i++ ) {
if ( num % i === 0 ) {
return false;
}
}
return true;
}
var arr = 2;
for ( var i = 3; i <= n; i+=2 ) {
if ( isPrime(i) ) {
arr += i;
}
}
return arr;
}
console.log(sumPrimes(10));

我要问的部分是这个特定的函数

function isPrime(num) {
for ( var i = 2; i < num; i++ ) {
if ( num % i === 0 ) {
return false;
}
}
return true;
}

特别是有问题的这一行

num % i === 0

我能理解的是arr是一个数组,它乘积 2 之后的每个奇数(例如,[2, 3, 5, 7, 9, 11, 13, 15, 17])。然后每个数字都通过 function isPrime 运行.我想了解的是 num % i === 0 的输出是什么关于 for ( var i = 2; i < num; i++ )

输出是这样的吗?

  • 3(num) % 2(i)
  • 5(数量)% 3(i)
  • 7(num) % 4(i)
  • 9(num) % 5(i)
  • 11(num)% 6(i)

最佳答案

for ( var i = 2; i < num; i++ ) {
console.log(`${num} % ${i} === ${num % i}`); // Extra line
if ( num % i === 0 ) {
return false;
}
}

在这段代码中,代码实际做的是遍历 2num 之间的每个数字,并将其分配给变量 i,并检查 num 是否可以被 i 整除。如果是,则返回 false

% 函数(称为取模函数)基本上取两个数,并返回第一个数除以第二个数的余数。所以,例如:

5 % 2 // = 1, 5/2 = 2 with 1 left over
7 % 3 // = 1, 7/3 = 2 with 1 left over

如果余数是 0,那么显然第一个数字可以被第二个数字整除,因为没有剩余。所以 num % i === 0 正在检查整除性,本质上是检查 num 是否可以被 i< 整除.

例如,当检查 5(使用额外的 console.log 行)时,这是输出到控制台的内容:

5 % 2 === 1
5 % 3 === 2
5 % 4 === 1

这就是 6 作为 num 输出的内容:

6 % 2 === 0

(已停止,因为返回了 false。)

关于javascript - Prime 函数中此条件的输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45383561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com