programmers/level1
[level1] - 약수의 합
태기의삶
2020. 7. 25. 13:55
문제 설명 :
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
입출력 예
n | return |
12 | 28 |
5 | 6 |
접근 방법 :
이 문제는 약수를 구해서 모두 더한 값을 반환하면 되는 아주 간단한 알고리즘 문제이다.
약수란?
어떤 수를 나누었을 때 나머지가 0인 수를 말한다.
주어진 수 N이 있으면 1부터 N까지의 수를 하나씩 나눴을 때, 나머지가 0이면 그것이 약수인 것이다.
필자는 약수를 구하기 위해 반복문을 통해서 나누는 수의 조건을 1 <= N까지로 잡았고, 반복문이 돌면서 순서대로 N을 1부터 N까지 나눈다.
N / 1~N까지 나눌 때, 나머지가 0이면 그 수는 약수이기 때문에 해당 수를 answer에 더한다.
결과적으로 반복문이 모두 완료가 되면, 약수를 모두 더한 값이 반환된다.
내가 짠 코드 :
function solution(n) {
let answer = 0;
for(let i = 1; i <= n; i++){
if(n % i === 0){
answer += i;
}
}
return answer;
}