Просмотр полной версии : Дано натуральное число n. Найти количество его делителей, что кратные 3.
Дано натуральное число n. Найти количество его делителей, что кратные 3.
Помогите пожалуйста...
var number=1369,
result=number.toString().split('').filter(function (n){
return n%3==0;
}).join(', ');
alert(result);
Прошу прощения за затуп.
Dilettante_Pro
15.11.2017, 14:13
var n=255, divisor = [], i = 3;
while(i < n) {
if(n % i == 0) divisor.push(i);
i = i + 3;
}
alert(divisor);
Dilettante_Pro
15.11.2017, 14:17
Nexus,
:victory: ! 12 на 3 не делится!
Nexus,
Dilettante_Pro,
:-?
Dilettante_Pro, я слово "делители" не так прочитал :(
Dilettante_Pro,
может лишнее исключить из проверки?
Dilettante_Pro
15.11.2017, 14:43
рони,
может лишнее исключить из проверки?
Поскольку ТС не представил никаких своих попыток, я сделал самый примитивный перебор
Dilettante_Pro,
ок ... на всякий случай, проверять i > n/3 нет смысла.
Предложу такой вариант... :D
var n=255;
var divisor = [];
if (n % 3 == 0) {
divisor.push(3);
n=Math.round(n/3);
var max=n/2;
for (var i=2; i<=max; i++) {
if (n % i == 0) {
divisor.push(3*i);
};
};
divisor.push(3*n);
};
alert(divisor);
проверять i > n/3 нет смысла
Я пошел еще дальше... :D
Dilettante_Pro
15.11.2017, 15:37
рони,
проверять i > n/3 нет смысла
это я оставил как бонус для ТС
Dilettante_Pro
15.11.2017, 15:39
ksa,
Я пошел еще дальше...
Т.е. с конца - дальше уже некуда:)
Dilettante_Pro, дальше в том смысле, что поделил не только на 3 но еще и на 2. :D
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot