728x90
🔥 Programmers Lv.1 : 약수의 합
🔍 문제 : " 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. "
📎 조건 :
∙ n은 0 이상 3000이하인 정수입니다.
∙ n은 0 이상 3000이하인 정수입니다.
👉🏻 My answer
function solution(n) {
let answer = 0;
for(let i=0; i<=n; i++){
if(n%i==0){
answer+=i;
}
}
return answer;
}
: n을 i로 나눈 값이 0이 됐을 때, 즉 n의 약수인 값 i를 다 더하기 위해 answer+=i;을 써준 후 return으로 출력하면 약수의 합을 구할 수 있습니다.
👉🏻 Another ways
function sumDivisor(num) {
var root=Math.sqrt(num);
var sum=num;
for(var i=0;i<num;i++){
if(i>root && num%i==0){
sum=sum+i;
console.log("큰수: "+sum);
}else if(i<root && num%i==0){
sum=sum+i;
console.log("작은수: "+sum);
}
}
return sum;
}
: 조건으로 num의 제곱근을 구하는 변수 root를 지정해서 약수가 num의 제곱근보다 작을때와 클때의 범위를 정해서 약수의 합을 구하였습니다.
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "자연수 뒤집어 배열로 만들기" (3) | 2022.11.01 |
---|---|
프로그래머스 Lv.1 "자릿수 더하기" (2) | 2022.11.01 |
프로그래머스 Lv.1 "나머지가 1이 되는 수 찾기" (2) | 2022.10.30 |
프로그래머스 Lv.1 "평균 구하기" (2) | 2022.10.30 |
프로그래머스 Lv.1 "짝수와 홀수" (4) | 2022.10.28 |
댓글