[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Двой цикл FOR
denis_alekss
Есть задача:


Вывести простые числа

Натуральное число, большее 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 ); // простое число
}


Натуральное число, большее 1, называется простым,
если оно ни на что не делится, кроме себя и 1.
Как я понял, например если взять число 4,
оно не простое, оно делится и на себя и на 1 и на четное 2.

Теперь если глянуть на код как он работает.

1-ая итерация цикла:
Идет проверка на остаток числа 3/2= есть остаток от деления.
Алерт должен вывести 3 а не 2, но почему вывод вначале двйоки произошел?
Ведь i = 3 за первым прогоном после i++ он стал 3
2-ая итерация цикла:
Метка перешла на начало цикла и пошла проверка 4/3?

Объясните, как происходит первая и вторая итерация в этом коде цифрами, что на что делится и как выводится очередность?
Я модернизировал код с кнопкой, для удобности, но как происходит проверка при итерациях не понял.


<!DOCTYPE html>
<html>
<head>
<meta
charset="utf-8">
<title>
Тест</title>
<script>
function
fanta(){
let rez = one.elements.number.value;
nextPrime:
for(let i = 2; i<=rez; i++){
for( let j = 2; j < i; j++){
if(i%j ==0) continue nextPrime;
}
document.write(i+"<br>");
}
}


</script>
</head>
<body>
<form
id="one">
<input
type="text" name="number" >
<input
type="submit" onClick="fanta()" value="Жми">
</form>

<p
id='result'></p>

</body>
</html>

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.