정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
n은 0 이상 3000이하인 정수입니다.
solution1
은 1부터 n까지의 정수를 순회하면서 n 나누기 i의 나머지가 0이 되는 i를 구하고 reduce()를 이용해서 배열의 각 요소의 총 합을 계산했다.
solution2
는 반복문을 진행하면서 if문 조건에 맞는 i를 sum
변수에 바로 더했다.
// solution 1
function solution(n) {
const factor = [];
for (let i = 0; i <= n; i++) {
if (n % i === 0) factor.push(i);
}
const sum = factor.reduce((a, b) => a + b, 0);
return sum;
}
// solution 2
function solution(n) {
let sum = 0;
for (let i = 0; i <= n; i++) {
if (n % i === 0) sum += i;
}
console.log(sum);
return sum;
}
solution(12) // 28
solution(0) // 0