Делители

На сколько верно данное решение?
И какие варианты решения могут быть ещё?

var number = 119;

for(var i = 2; i < number; i++) {
  if(number % i === 0) {
   console.log(i); 
  }
}
5 лайков

Ну, я решил так, например

var number = 15;

for (i = 1; i <= number; i++) {
  if (i != 1 && i != number) {
       if (number % i === 0) {
          console.log(i);
        }
    }
}
1 лайк

if (i != 1 && i != number) {
Я только начинающий, однако позволю себе прокомментировать эту строку. Я думаю, если сделать в условии цикла i=2 и i< number, то можно обойтись без лишнего условия.

а еще лучше i <= number/2

var iEnd = Math.floor (number / 2);
for (var i = 2; i <= iEnd; i++) {
if ((number % i) === 0) {
console.log (i);
}
}

Не претендую на гениальность, просто не увидел решение через “while”…

var number = 15;
var i = 0;

while (i < number) {
i++
if (number % i === 0) {
if (i == 1 || i == number) {}
else {
console.log(i);
}
}
}

Я сделал так:

var number = 15;
var i = 1;

while (i < number - 1) {
i++;
if (number % i === 0) {
console.log(i);
}
}

вот мое решение
var number = 15;

for (i = 2; i < number; i++) {

if (number % i === 0) {
console.log (i);
}
}

for (var i= number - (number - 2); i < number; i++) {
if (number % i === 0) {
console.log(i);
}
}

вот такой результат получился через for
учитывал то, что number меняется постоянно

Возможно ли такое решение ?

var number = 15;

for (var i = 1; i <= number; i++) {
if (number % i === 0 && i !== number && i !== 1) {
console.log(i)
}
}

1 лайк

вполне.

Я так решил, но твой пример более удобнее читаем.

var number = 15;
var exception = 1;

for(var i = number - exception; i > exception; i--){
  if(number % i == 0){
    console.log(number / i);
  }
}

Хороший вариант, я решил вот так, но твой вариант мне нравиться больше.

var number = 15;
var exception = 1;

for(var i = number - exception; i > exception; i--){
  if(number % i == 0){
    console.log(number / i);
  }
}

var number = 15;

for (i = 1; i <= number; i++) {
if (number % i === 0 && i !== number && i !== 1) {
console.log(i);
}
}

var number = 15;

for (var i = 2; i <= number / 2; i++) {
  if (number % i === 0) {
    console.log(i);
  }
};

Вот как-то так вышло.

Как-то так:

var number = 15;

for(var i=number;i>=1;i–){
if(number%i===0 && i!==1 && i!==number){
console.log(number/i);
}
}

1 лайк

Поддерживаю такой вариант)

let number = 15;

for (let i = 2; i < number; i++) {
if (number % i === 0) {
console.log(i)
}
}

Достаточно проверять до number / 2. Например, у числа 100 не может быть делителей > 50. И так у всех чисел.

let number = 15;

for (let i = 2; i <= number / 2; i++) {
  if (number % i == 0) console.log(i);
}
2 лайка

let number = 15;
let i = 1;
while(i < number){
i++;
if( number % i == 0 && i !==number){
console.log(i);
}
}

Рабочий код который проходит проверку.

let number = 15;

for ( let i = 0; i <= number; i++){
let j = number % i;
if (j === 0 && i !== 1 && i !== number){
console.log(i)
}

}