약수의 합

문제 📖

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

  • n은 0 이상 3000이하인 정수입니다.

나의 풀이 🙋‍♀️

function solution(n) {
  let sum = n;
  for (let i = 1; i <= Math.floor(n / 2); i++) {
    if (n % i === 0) sum += i;
  }
  return sum;
}

간단하게 for문을 사용했다.

어차피 주어진 수 n의 절반까지만 정답의 유효 범위이기 때문에 반복 횟수를 조금이라도 줄이려고 신경썼다.

반복문을 통해 주어진 수 n을 정수로 나눈 값이 0일 경우, 총합 sum에 더해준다.

Leave a comment