Вопрос №55585 от пользователя Аcя Калинина в уроке «Переменные, декларативное и императивное программирование», курс «Введение в программирование»

Аcя Калинина

Добрый день! Помогите, пожалуйста, с кодом. https://ru.hexlet.io/code_reviews/419296 Выдает не тот результат, который хотелось бы получить.

6 0

Вячеслав Павлов

Анастасия Калинина, здравствуйте.

  • Делитель должен быть больше единицы, за исключением случая, когда аргументом является единица (наименьшим делителем которой является также единица).

Попробуйте начинать цикл с делителя равным двойке.

0

Аcя Калинина

Уже ставила двойку, попробовала снова и выдает также ошибочный результат

0

Вячеслав Павлов

Проверку на случай когда аргумент единица забыли добавить в функцию.

FAIL  __tests__/solution.test.js

  ✕ solution (6 ms)


  ● solution

    expect(received).toBe(expected) // Object.is equality

    Expected: 1
    Received: 3

       6 |   expect(smallestDivisor(-3)).toEqual(NaN);
       7 |   expect(smallestDivisor(0)).toEqual(NaN);
    >  8 |   expect(smallestDivisor(1)).toBe(1);
         |                              ^
0

Аcя Калинина

Добавила, теперь так: Expected: 2 Received: 1

   7 |   expect(smallestDivisor(0)).toEqual(NaN);
   8 |   expect(smallestDivisor(1)).toBe(1);
>  9 |   expect(smallestDivisor(4)).toBe(2);
     |                              ^
  10 |   expect(smallestDivisor(121)).toBe(11);
  11 |   expect(smallestDivisor(3)).toBe(3);
  12 |   expect(smallestDivisor(8)).toBe(2);`

`

0

Вячеслав Павлов

В условии проверки вы присваиваете единицу, а не проверяете на равность.

Обратите внимание на цикл с делителем, возьмите любое число и по шагам посмотрите, как работает ваш алгоритм и что нужно подправить.

0

Maksim Litvinov

Анастасия, добрый день! Обратите внимание на третий пункт в описании алгоритма:

Если число не делится без остатка на текущий делитель, то попробуйте следующий делитель.

Получается цикл должен работать, пока число НЕ делится без остатка. В цикле нужно увеличивать делитель на единицу. Как только делитель будет найден, нужно его вернуть

0

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

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

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

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

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

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

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