Cliffheath
@Cliffheath
Решил войти вайти

Как находить наименьший делитель в итеративном процессе рекурсии?

Прохожу курс основ программирования на Хекслете.
В задачке по итеративному процессу, где надо найти наименьший делитель заданного числа случился хардстак. Вот мой код:

const smallestDivisor = (num) => {
const iter = (counter, acc) => {
    if (counter === 1) {
        return 1;
}
    if (counter % acc) {
        return acc;
    }
    return iter(counter, acc + 1);
};
    return iter(num, 4);
};


Пытаюсь найти наименьший делитель для числа 4, который является 2кой.
Спойлерить решение от Хекслета не хочу, хочу понять как решать.
  • Вопрос задан
  • 2660 просмотров
Пригласить эксперта
Ответы на вопрос 1
@McBernar
Читайте задание внимательнее.
Попробуйте в голове разложить алгоритм простыми словами.

1. Передаем в функцию число num (например, 9)
2. Создаем переменную acc с начальным значением 2 (1 нам не нужно)
3. Делим num на acc.
4. Делиться без остатка? (9 % 2) Это наименьший делитель, возвращаем его.
5. Не делиться? Добавляем к acc +1 и пробуем еще раз.
6. Дошли до acc = num? Возвращаем num.

Соответственно, с пункта 2 по 6 - это рекурсия, которая работает с acc.
Ответ написан
Ваш ответ на вопрос

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

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