@Monserator

Есть ли ошибка в функции?

Дана функция на проверку простых чисел, с помощью нее надо найти все простые числа от 1го до 100. Вот решение
<br>
    function isPrime(num) {<br>
        for (let i = 2; i < num; i++) {<br>
            if (num % i == 0) {<br>
                return false;<br>
            }<br>
        }<br>
        <br>
        return true;<br>
    }<br>
    let arrPrime = [];<br>
<br>
    for (let i = 1; i <= 100; i++){<br>
        if (isPrime(i)){<br>
            arrPrime.push(i);<br>
        }<br>
    }<br>
<br>
    console.log(arrPrime);<br>


а в консоль выводит
[1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]


Хотя при проверке console.log(2 % 2 == 0); выдает true, т.е. должно произойти return false и push не должен сработать, хотя понимаю что 2 простое число ...
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
До проверки дело не доходит потому что цикл вообще не запускается, т.к. не выполняется условие i < num.

А вот ваш внешний цикл надо начинать не с 1, а с 2, т.к. 1 по определению не является простым числом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы