[프로그래머스] 약수의 합

개발잘하기프로젝트·2020년 11월 21일
0
post-thumbnail

🤔 문제

프로그래머스 - 약수의 합

정수 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
profile
🏠 ☕️ 🎞 🌿 + 🧑🏻‍💻

0개의 댓글