【发布时间】:2016-07-27 18:09:21
【问题描述】:
我有以下数字数组:
var array = [5,9,12,19,23,24,31,44,49,62];
我试图找出每一个它们是偶数和合数、奇数和合数,还是奇数和素数。我首先试图找到偶数和合数:
for (i = 0; i < array.length; i++) {
if (array[i]%2 === 0 && array[i]%i === 0) {
console.log(array[i]+" is even and composite")
}
}
问题是当我应该得到 12、24、44、62 时,我只得到 12。它似乎停在 12 点。可能是什么问题?
谢谢。
【问题讨论】:
-
比较
array[i]%i === 0不是检查array[i]是否是合数,而是检查array[i]是否能被i整除。对于 24、44 和 62 的情况,它们不会使您的条件为真,因为 24 不能被 5 整除,44 不能被 7 整除,62 不能被 8 整除。您需要重新制定条件以检查一个数是否是合数。 -
好吧,12 也不能被 5 整除,但它仍然以某种方式显示出来。
-
在计算 12 时,
i的值为 2,12 可以被 12 整除。澄清一下,您的条件当前检查一个数字是否为偶数(可被 2 整除)并且可被其在数组中的索引整除。
标签: javascript arrays primes composite