본문 바로가기
IT/Javascript

약수의 합

by DOSGamer 2022. 7. 14.
반응형

문제

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

제한조건

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

풀이방향

  • 입력된 값의 약수를 구하고
  • 약수를 합계하여 리턴

입출력의 예


n return
12 28
5 6

문제풀이

function sumOfDivisor(num) {
  //약수의 합
  let sum = 0;
  for (let i = 1; i <= num; i++) {
    if (num % i === 0) {
      sum += i;
    }
  }
  return sum;
}

export { sumOfDivisor };
import { sumOfDivisor } from "../src/sumOfDivisor";

describe("sumOfDivisor", () => {
  it("should return 28 as the sum of divisor of 12", () => {
    expect(sumOfDivisor(12)).toBe(28);
  });

  it("should return 6 as the sum of divisor of 5", () => {
    expect(sumOfDivisor(5)).toBe(6);
  });
});

문제출처

다른 풀이

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

'IT > Javascript' 카테고리의 다른 글

Babel+Webpack 설정방법  (0) 2022.08.30
Javascript 함수형 예제  (0) 2022.08.30
Javascript 객체 복사 (Object, Array)  (0) 2022.08.10
두 정수 사이의 합  (0) 2022.07.14
행렬의 덧셈  (0) 2022.07.14
수박수박수박수박수박수?  (0) 2022.07.14
문자열을 정수로 바꾸기  (0) 2022.07.14
비밀지도  (0) 2022.07.14