Давайте напишем код, который будет проверять
число на то, простое оно или нет. Простое
число - это число, которое не делится ни
на одно другое число (кроме как на 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);
Самостоятельно, не подсматривая в мой код, повторите решение описанной задачи.