Ich habe die folgende Reihe von Zahlen:zu finden versuchen, wenn Zahlen sind gerade/ungerade/Composite/Prime
var array = [5,9,12,19,23,24,31,44,49,62];
und ich für jeden, um herauszufinden versuchen, wenn sie entweder selbst und Composite sind, ungerade und zusammengesetzt oder ungerade und Primzahl. Ich begann, indem sie versuchen, die Zahlen zu finden, die auch und Composite:
for (i = 0; i < array.length; i++) {
if (array[i]%2 === 0 && array[i]%i === 0) {
console.log(array[i]+" is even and composite")
}
}
Das Problem ist, ich nur 12, wenn ich 12,24,44,62 bekommen sollte. Es scheint bei 12 zu stoppen. Was könnte das Problem sein?
Vielen Dank.
Der Vergleich 'array [i]% === i 0 'überprüft wird, ob nicht' array [i] 'eine zusammengesetzte Zahl ist oder nicht, sondern ist die Überprüfung, ob' array [i] 'teilbar durch "ich". Für die Fälle 24, 44 und 62 machen sie Ihre Bedingung nicht wahr, weil 24 nicht durch 5 teilbar ist, 44 nicht durch 7 teilbar ist und 62 nicht durch 8 teilbar ist. Sie müssen Ihre Bedingung umarbeiten Überprüfen Sie, ob eine Zahl zusammengesetzt ist oder nicht. –
Nun, weder ist 12 teilbar durch 5, aber es zeigt es immer noch irgendwie. –
Wenn Sie 12 auswerten, hat "i" den Wert 2, durch den 12 teilbar ist. Zur Klärung wird derzeit überprüft, ob eine Zahl gerade ist (durch 2 teilbar) und durch ihren Index im Array teilbar ist. –