본문 바로가기
알고리즘 공부

프로그래머스 1단계 - 약수의 합

by 코딩 냠냠 2022. 11. 16.
728x90
반응형

약수의 합


문제 설명

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

제한 조건

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

입출력 예시

n return
12 28
5 6

😇내가 한 풀이

for()문과 if()문으로 간단하게 해결하였다!

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

😇다른 풀이

오... 삼항연산자를 중복해서 사용할 수 있다는것을 배워간다...!하지만, 가독성이 떨어진다는 의견이 많다...

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

😇다른 풀이2

밖에다가 선언하는게 인상적인 풀이였다...!

function solution(n) {
  var answer = 0;
  let i;
  for (i = 1; i <= Math.sqrt(n); i++){
      if (!(n%i)) {
          answer += (i+n/i);
      }
  }
  i--;
  return (i === n/i) ? answer-i : answer;
}

댓글


자바스크립트

Javascript

자세히 보기
html
css
광고 준비중입니다.
<