试图找出数字是奇数/偶数/复合/素数

时间:2016-07-27 18:09:21

标签: javascript arrays primes composite

我有以下数字:

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点。可能是什么问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将每个问题都解决为使其更容易的功能。

例如:在数组中找到偶数

mongodb supplied JSON is too large

然后编写另一个函数来检查复合数和素数。如果我为你完成所有的工作,那将不会很有趣。

function isEven(n) {
   return (n % 2) === 0  //to get even numbers
}

function isOdd(n) {
   return (n % 2) === 1  //to get odd numbers
}

然后要获取数组中的偶数,你可以简单地使用filter方法将数组传递给你预先编写的测试函数作为参数,如果你不知道它是什么查找的话。但基本上它会检查数组中的每个元素是否通过测试,然后从中创建另一个函数。

function isComposite(n) {
   //Enter check for composite numbers here
}

function isPrime(n) {
   //Enter check for prime numbers here
}

您还可以链接函数调用以查找偶数和复合数字。

array.filter(isEven) // This would create a new array of all the even numbers in your array