programmers 코딩테스트 : 약수의 합

H·2022년 5월 13일
0

Coding Test

목록 보기
16/26

🔔 약수의 합

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

⛔ 제한 사항
n은 0 이상 3000이하인 정수입니다.


🔠 첫번째 통과한 코드

function solution(n) {
  let answer = 0;
  for (let i = 1; i <= n; i++) {
    if (n % i === 0) {
      answer += i;
    }
  }
  return answer;
}

📌 코드 설명

  1. 약수는 나머지가 0인 경우
  2. for문으로 i가 1부터 n까지 조건으로
  3. 약수가 되는 조건일 때 answer에 i를 +i로 담아준다.
  4. return answer;

❗ 주의점

n = 0 인경우 answer도 0이 나와야함


🔠 다른 사람의 코드

function sol(n, a = 0, b = 0) {
  return n <= a / 2 ? b : sol(n, a + 1, (b += n % a ? 0 : a));    }
}

📌 코드 설명

for문을 사용하지 않았지만 true가 나올때까지 반복적으로 함수를 재귀적으로 사용한 방식

profile
🤘 돌머리도 ROCK이다! 🤘

0개의 댓글