Чётное / нечётное количество делителей у числа.
Привет!
Пытаюсь решить задачу: функция принимает в качестве аргумента число и возвращает количество всех его делителей - чётное или нечётное. function check ( num ){ var b; +b <= 3; var a = Math.pow( 2, b ); var d; +d <= 1; var c = Math.pow( 3, d ); num = ( (Math.pow(2 ,3) * 3) / (a *c) ); num % 2 == 0? alert ( "Чётное") :alert( "Нечётное" ); } check ( 134 ) Код писал, основываясь на разделе Why this works Ожидаемым образом функция не работает. Консоль не показывает никаких ошибок. Прошу помочь решить эту задачу. |
Цитата:
|
рони,
Например, число 10, его делители 1, 2, 5, 10 - всего четыре, чётное количество. Число 9, его делители 1, 3, 9 - всего три, нечётное количество. |
|
Если надо только выяснить, четное это количество, или нет - просто проверь, является ли число квадратом. Возьми корень, проверь что он целочисленный
|
Яростный Меч,
Если Math.sqrt(num) % 1 === 0, то число является квадратом. У квадрата, насколько я понимаю, всегда будет 3 делителя. А как остальные числа проверять? |
Alexander Belov,
У квадрата нечетное количество делителей, у всех других - четное. Делители ведь можно разбить на пары, такие что произведение чисел в каждой паре равно проверяемому числу. Квадратный корень, если он есть, образует пару сам с собой, отсюда и нечетность. |
Яростный Меч,
Благодарю! Всё несложно оказалось. function checkNum (num){ return Math.sqrt (num) % 1 ? alert ("Чётное") : alert ("Нечётное"); } checkNum (9); checkNum (177); checkNum (91); checkNum (100); |
Часовой пояс GMT +3, время: 06:16. |