Новую задачку решил.
Горазды же эти математики на придумывание неких сущностей. Первый раз слышу про "совершенные" числа.
Создайте функцию isPerfect, которая принимает число и возвращает true, если оно совершенное, и false — в ином случае.
Совершенное число — это положительное целое число, равное сумме его положительных делителей (не считая само число). Например, 6 — идеальное число, потому что 6 = 1 + 2 + 3.
Список совершенных чисел:
6
28,
496,
8128,
33 550 336,..
Моё решение:
const isPerfect = (num) => {
if (num === 1) {
return false;
}
let sumOfDividers = 1;
let divider = 2;
const half = num / 2;
while (divider <= half) {
if ((num % divider) === 0) {
sumOfDividers += divider;
}
divider += 1;
}
if (num === sumOfDividers) {
return true;
}
return false;
}