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

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

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);

Ответы (1 шт):

Автор решения: ksa

Имеется массив чисел. Необходимо найти общие делители для всех элементов данного массива и создать из них новый массив.

Предложу такой вариант...

const arr = [10, 20, 30, 40, 55, 60, 70];
const m = Math.min(...arr)
const a = []
for (let i = 1; i <= m; i++) {
  if (arr.every(v => v % i === 0)) a.push(i)
}
console.log(a)

→ Ссылка