프로그래머스 1단계 : 약수의 개수와 덧셈
코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 약수의 개수와 덧셈
✔ 문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
✔ 제한 사항
1 ≤ left ≤ right ≤ 1,000
✔ 입출력 예
left | right | result |
---|---|---|
13 | 17 | 43 |
24 | 27 | 52 |
✔ 문제풀이
function solution(left, right) {
var count = 0;
var answer = 0;
for(var i=left; i <=right; i++){
for(var j = 1; j < = i; j++){
if(i%j === 0 ){
count += 1;
}
}
if(count % 2 === 0){
answer += i;
}else{
answer -= i;
}
count =0;
}
return answer;
}
✔ 설명
조건에 맞게 반복문과 조건문을 쇽쇽 넣었습니다. 참 쉽죠?
✔ 다른사람의 풀이
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
제곱근이 정수면, 약수의 갯수가 홀수라고 하네요.
댓글