Есть задача:
Код:
|
Вывести простые числа
важность: 3
Натуральное число, большее 1, называется простым, если оно ни на что не делится, кроме себя и 1.
Другими словами, n > 1 – простое, если при его делении на любое число кроме 1 и n есть остаток.
Например, 5 это простое число, оно не может быть разделено без остатка на 2, 3 и 4.
Напишите код, который выводит все простые числа из интервала от 2 до n.
Для n = 10 результат должен быть 2,3,5,7.
P.S. Код также должен легко модифицироваться для любых других интервалов. |
Вот решение задачи вложенным циклом FOR
let n = 10;
nextPrime:
for (let i = 2; i <= n; i++) { // Для всех i...
for (let j = 2; j < i; j++) { // проверить, делится ли число..
if (i % j == 0) continue nextPrime; // не подходит, берём следующее
}
alert( i ); // простое число
}
Правильно я понимаю? Речь про строку
if (i % j == 0) continue nextPrime;
За первой итерацией будет проверяться остаток от деления 3/2?
i до того как дойдет до второго внутреннего for из-за i++ станет 3, хотя он стартовал с 2 и затем будет в If проверяться остаток от деления 3/2 (три на два за первым прогоном цикла)?