Advertisement
sheredega

JS - code1

Dec 13th, 2021
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function sumOfDivided(lst) {
  2.     let arr = []
  3.     for (let i = 0; i < lst.length; i++) { // Записываем в массиыв arr все возможные делители для чисел из lst
  4.         if (lst[i] > 0) { // Проверка на положительное и отрицательное число
  5.             for (let j = 2; j <= lst[i]; j++) {
  6.                 if (lst[i] % j == 0) {
  7.                     arr.push(j)
  8.                 }
  9.             }
  10.         }
  11.         else if (lst[i] < 0) {
  12.             for (let j = 2; j <= -lst[i]; j++) {
  13.                 if (lst[i] % j == -0) {
  14.                     arr.push(j)
  15.                 }
  16.             }
  17.         }
  18.     }
  19.     for (let i = arr.length - 1; i >= 0; i--) { // Удаляем повторящиеся элементы
  20.         if (arr.indexOf(arr[i]) != i)
  21.             arr.splice(i, 1);
  22.     }
  23.     for (let i = arr.length - 1; i >= 0; i--) { // Удаляем элементы, которые не являются простыми множителями
  24.         for (let j = 2; j < arr[i]; j++) {
  25.             if (arr[i] % j == 0 && arr[i] != j) {
  26.                 arr.splice(i, 1)
  27.             }
  28.         }
  29.     }
  30.     function compare(a, b) { // Функция для сортировки по возрастанию простых множителей
  31.         return a - b
  32.     }
  33.     arr.sort(compare) // Сортировка (условие задачи)
  34.     let result = arr.slice() // Копирую массив, а не ссылаюсь на него
  35.     for (let i = 0; i < arr.length; i++) { // Перебираю массив простых множителей
  36.         let sum = 0
  37.         for (let j = 0; j < lst.length; j++) { // Перебираю массив, заданный в функцию
  38.             if (lst[j] % arr[i] == 0) { // Проверка, если число делится - сумируем его во 2й элемент массива для каждого i
  39.                 result[i] = [arr[i], sum += lst[j]]
  40.             }
  41.         }
  42.     }
  43.     return result
  44. }
  45. console.log(sumOfDivided([ -29804, -4209, -28265, -72769, -31744 ]))
  46.  
  47.  
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement