Ребят, привет! Решаю задачи по написанию функций, но со следующей задачей зашёл в тупик.
Сделайте функцию getFreindly, которая будет находить пары дружественных чисел в заданном промежутке и возвращать их в виде двухмерного массива вида [ [220, 284], [1184, 1210], [2620, 2924] ]. С помощью созданной функции найдите все пары дружественных чисел на промежутке от 1 до 9000.
Вот моё решение:
alert(Freindly(1, 9000));
function Freindly(num1, num2){
let arr=[[]];
let sum1 = getSum(getOwnDivisors(num1));
let sum2 = getSum(getOwnDivisors(num2));
for(let i=0; i<=2; i++){
arr.push([i]);
for(let j=num1; j<num2; j++){
if(sum1==num2&&sum2==num1){
arr.push([i][j]);
}
}
return arr;
}
}
function getOwnDivisors(num){
let result=[];
for(let i=1; i<9000; i++){
if (9000 % i==0){
result.push(i);
}
} return result;
}
function getSum(arr){
String(arr).split('');
let sum=0;
for(elem of arr){
sum+= Number(elem);
}
return sum;
}
Вот чувствую, что я что-то не так делаю, намудрил может быть лишнего, потому и в тупик зашёл. Что в моём решении не так? Подскажите правильное решение.