Cześć, mam następujące zadanie do wykonania:
Napisz funckję ,która ma zwracać informację czy podana liczba num` jest liczbą doskonałą, niekompletną czy żadną z tych .
Jeśli liczba jest doskonała zwróć -> "doskonała"
Jeżeli liczba jest niekompletna zwróć -> "niekompletna"
Jeżeli liczba nie jest ani doskonała ani niekompletna zwróć -> false
Liczba doskonała to taka liczba, która jest sumą wszystkich swoich dzielników (mniejszych od niej). Jest to np. 6:
6 = 3 + 2 + 1
Liczba niekompletna to taka liczba, która jest większa od sumy wszystkich swoich dzielników. Jest to np. 10:
1+2+5=8 < 10
.
Mam następujący kod, ale nie działa. Dla 28,10 i 6 daje wynik niekompletna, a dla 0 undefined. Gdzie jest błąd?
function sumDivisors(num){
var sum = 0;
for (var i = 1; i < num; i++){
if (num % i === 0) {
sum += i;
var statement1 = "";
if (sum === num) {
statement1 = "doskonała";
}
else if (num > sum){
statement1 = "niekompletna";
}
else statement1 = false;
}
return(statement1);
}
}
var num = 28;
console.log (sumDivisors(num));
var num = 10;
console.log (sumDivisors(num));
var num = 0;
console.log (sumDivisors(num));
var num = 6;
console.log (sumDivisors(num));