私は数字の次の配列があります番号が奇数/偶数/複合している場合/プライム
var array = [5,9,12,19,23,24,31,44,49,62];
をし、私は彼らがどちらかでも、コンポジット、奇数であれば、それぞれ1のために見つけるためにしようとしていますコンポジット、または奇数とプライム。私も、合成されている数字を見つけようとすることから始めました:
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時に停止するようです。何が問題になる可能性がありますか?
ありがとうございます。
比較 '配列[i]は%私=== 0 'は'配列[i]は'合成数またはではなく、 '配列[i]は'割り切れるかどうかをチェックしているか否かを確認されていません「私」によって。 24,44,62の場合は、24が5で割り切れず、44が7で割り切れず、62が8で割り切れないため、あなたの条件は真ではありません。あなたの条件を再作成する必要があります。番号がコンポジットかどうかを確認してください。 –
どちらも12で5で割り切れるわけではありませんが、それでも何とかそれを示しています。 –
12を評価しているとき、 'i'は2という値を持ちます。これは12で割り切れます。明確にするため、条件は現在、数値が偶数(2で割り切れる)で、配列内のインデックスで割り切れるかどうかをチェックします。 –