@Haykeloff

JS код возвращает Undefined, почему?

Хотел написать код который находит минимальный делитель числа. Вроде написал, да вот только последний блок кода возвращает Undefined, и я так и не смог понять почему. Вот кстати код:
const smallestDivisor = (num) => {
let n = 3;
if (num === 1) {
    return num;
} else if ( num % 2 === 0) {
    return 2;
} else if (num % 3 === 0) {
    return 3;
} else {
    while(n > Math.pow(num, 0.5)){
        n = n + 2;
        if (num % n === 0) {
        return n;
        }
     }
}
};
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vshvydky
3 > Math.pow(11, 0.5)
собственно вот здесь ответ, твой алгоритм не корректен, у тебя в блоке элз нет входа в луп, и соответственно выход из функции без явного return что равно return undefined
Ответ написан
john36allTa
@john36allTa
alien glow of a dirty mind
const smallestDivisor = (num) => {
	if ( num % 2 === 0) return 2;
	let m = Math.abs(num), max = m > 9 ? Math.sqrt(m) : m;
	for(n=3; n < max; n+=2) if (m % n === 0) return n;
	return m;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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