Вопрос №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

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

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

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

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 8 июня
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 8 июня
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 8 июня
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 8 июня
профессия
от 10 080 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 8 июня
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 8 июня
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время
профессия
от 6 300 ₽ в месяц
новый
Автоматизированное тестирование веб-приложений на JavaScript
10 месяцев
с нуля
в разработке
дата определяется