Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function sumOfDivided(lst) {
- let arr = []
- for (let i = 0; i < lst.length; i++) { // Записываем в массиыв arr все возможные делители для чисел из lst
- if (lst[i] > 0) { // Проверка на положительное и отрицательное число
- for (let j = 2; j <= lst[i]; j++) {
- if (lst[i] % j == 0) {
- arr.push(j)
- }
- }
- }
- else if (lst[i] < 0) {
- for (let j = 2; j <= -lst[i]; j++) {
- if (lst[i] % j == -0) {
- arr.push(j)
- }
- }
- }
- }
- for (let i = arr.length - 1; i >= 0; i--) { // Удаляем повторящиеся элементы
- if (arr.indexOf(arr[i]) != i)
- arr.splice(i, 1);
- }
- for (let i = arr.length - 1; i >= 0; i--) { // Удаляем элементы, которые не являются простыми множителями
- for (let j = 2; j < arr[i]; j++) {
- if (arr[i] % j == 0 && arr[i] != j) {
- arr.splice(i, 1)
- }
- }
- }
- function compare(a, b) { // Функция для сортировки по возрастанию простых множителей
- return a - b
- }
- arr.sort(compare) // Сортировка (условие задачи)
- let result = arr.slice() // Копирую массив, а не ссылаюсь на него
- for (let i = 0; i < arr.length; i++) { // Перебираю массив простых множителей
- let sum = 0
- for (let j = 0; j < lst.length; j++) { // Перебираю массив, заданный в функцию
- if (lst[j] % arr[i] == 0) { // Проверка, если число делится - сумируем его во 2й элемент массива для каждого i
- result[i] = [arr[i], sum += lst[j]]
- }
- }
- }
- return result
- }
- console.log(sumOfDivided([ -29804, -4209, -28265, -72769, -31744 ]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement