вывод простых чисел с массива JS (помогите найти ошибку)

уважаемые форумчане. Хочу вывести в консоль числа с массива и прописать возле каждого простое они или нет. Консоль выводит, что число 5 и далее до конца массива это все не простые числа. Помогите найти ошибку в коде, уже мозг закипает:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
let flag = true;

for (let i = 0; i < arr.length; i++) {
   for (let j = 2; j < i; j++) {
      if (arr[i] % j == 0) {
         flag = false;
         break;
      }
   }

   if (flag) {
      console.log(`${arr[i]} ПРОСТОЕ ЧИСЛО`);
   } else {
      console.log(`${arr[i]} НЕ простое число`);
   }

}

Ответы (1 шт):

Автор решения: Oleg Dmitrochenko

Переопределяйте flag внутри начала цикла или используйте объявление в начале цикла.

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

for (let i = 0; i < arr.length; i++) {
   let flag = true;
   
   for (let j = 2; j < i; j++) {
      if (arr[i] % j == 0) {
         flag = false;
         break;
      }
   }

   if (flag) {
      console.log(`${arr[i]} ПРОСТОЕ ЧИСЛО`);
   } else {
      console.log(`${arr[i]} НЕ простое число`);
   }

}

→ Ссылка