Artem3677
@Artem3677
Учусь

Как найти общие делители элементов массива?

Имеется массив чисел. Необходимо найти общие делители для всех элементов данного массива и создать из них новый массив. Я написал код, но он по каждому элементу массива создаёт массив его делителей. А мне необходимо чтоб для всех элементов массива был создан массив общих делителей. Вот код:

let arr = [10, 20, 30, 40, 55, 60, 70];

let k = Math.floor(Math.max.apply(null, arr) / 2);
let res = [];

for (let i = 0; i < arr.length; i++) {
    for (let j = 2; j <= k; j++) {
        if (arr[i] % j === 0 && arr[i + 1] % j === 0 && res.includes(j) === false) {
            res.push(j);
        }
    }
}
console.log(res);
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
@Camaro67
Помог? - жми "Отметить решением"
let arr = [10, 20, 30, 40, 55, 60, 70];

// Ищем минимальное число в массиве т.к. делитель не может быть больше него
let min = Math.min(...arr);

// Ищем общие делители
let commonDivisors = [];
for (let i = 1; i <= min; i++) {
    if (arr.every(num => num % i === 0)) {
        commonDivisors.push(i);
    }
}

console.log(commonDivisors);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы