반응형
문제
정수 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 |