Нахождение простых чисел на JavaScript

Давайте напишем код, который будет проверять число на то, простое оно или нет. Простое число - это число, которое не делится ни на одно другое число (кроме как на 1 и на само себя - на это делятся все числа).

Самый простой способ проверить число на простоту - перебрать в цикле все числа от 2 до самого числа и в процессе перебора проверять, делится ли наше число хотя бы на одно из перебираемых чисел.

Если ни на одно из этих чисел наше число не поделится - оно простое, а если хотя бы на одно поделится - оно составное.

Решим задачу через флаг.

Давайте установим начальное значение флага в true, считая число по умолчанию простым:

let num = 31; // некоторое число let flag = true; // начальное значение флага

Затем запустим цикл от 2 до нашего числа (не включая его), и в цикле будем проверять, делится ли наше число на счетчик цикла:

let num = 31; let flag = true; for (let i = 2; i < num; i++) { if (num % i == 0) { } }

Очевидно, что если num хотя бы один раз поделится на i - то число не простое. В таком случае мы должны установить значение флага в false:

let num = 31; let flag = true; for (let i = 2; i < num; i++) { if (num % i == 0) { flag = false; // если хотя бы один раз поделилось } } console.log(flag); // выведем значение счетчика

В общем-то задача решена. Есть, однако, один нюанс: даже если в какой-то итерации цикла мы определим, что число не простое, цикл все равно будет крутится до самого конца. Это не оптимально.

Для решения проблемы добавим инструкцию break, осуществляющую выход из цикла, если число не простое:

let num = 31; let flag = true; for (let i = 2; i < num; i++) { if (num % i == 0) { flag = false; break; // выйдем из цикла } } console.log(flag);

Самостоятельно, не подсматривая в мой код, повторите решение описанной задачи.