Вопрос №55663 от пользователя user-4ae686650cba0826 в уроке «Цикл for и изменение переменных», курс «Введение в программирование»

user-4ae686650cba0826

Добрый вечер! Подскажите, пожалуйста, в чем ошибка? Прорабатываю на бумаге, вроде все должно работать, но ответ не тот. https://ru.hexlet.io/code_reviews/420332

6 0

Maksim Litvinov

Добрый день! Посмотрите на вывод тестов:

    Expected: false
    Received: true

      4 |
      5 | test('not prime', () => {
    > 6 |   expect(isPrime(-3)).toBe(false);
        |                       ^

Сейчас функция возвращает true для отрицательного числа. Но отрицательное число не может быть простым. Простое число - это целое положительное число, которое делится только на 1 и на себя. Первое простое число - это 2, то есть все числа меньше двух простыми не являются.

0

user-4ae686650cba0826

Максим Литвинов, добрый день! Добавила условие и немного изменила код, выдает ошибку на числе 4, где может быть проблема? https://ru.hexlet.io/code_reviews/420332 Ревью №7

0

Maksim Litvinov

Вы правильно сформировали само условие. Но это проверка пограничного случая, и она должна стоять самой первой в функции, еще до цикла. В этом случае нужно просто сразу вернуть false. Нет смысла крутить цикл, ведь уже понятно, что число не простое. Сейчас решение не проходит с числом 4. Попробуйте по шагам проследить, как выполняется функция с числом 4.

0

user-4ae686650cba0826

Максим Литвинов, поменяла местами условия, чтобы цикл был после, но теперь ошибку выдает на 3, тестировала код в визуализаторе, пишет, что проблема в цикле while, но где именно я не понимаю, прорабатывала по шагам код с 3, но так и не смогла найти свою проблему. Подскажите, пожалуйста, сижу над заданием 3 день, вариантов исправления уже не вижу. https://ru.hexlet.io/code_reviews/420332 Ревью№9

0

Maksim Litvinov

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

0

user-4ae686650cba0826

Максим Литвинов, спасибо за помощь! Смогла решить задание переписав полностью код по образцу урока for, видимо, слишком большой был код и из-за этого были ошибки. В период внесения поправок в код, очень помог Ваш первый комментарий.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев