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

Trying to find if numbers are odd/even/composite/prime

本文关键字:偶数 复合 素数 数字 是否      更新时间:2023-09-26

我有以下数字数组:

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

谢谢。

您可以将每个问题作为一个函数来处理,使其更容易。

例如:在数组中查找偶数

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

然后编写另一个函数来检查复合数和素数。如果我为你做所有的工作,那就不好玩了。

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

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

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

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

array.filter(isEven).filter(isComposite)  //would give you all the even and composite numbers in your array