Link
문제
풀이
(1)
function solution(left, right) {
let answer = 0;
for (let i = left; i <= right; i++) {
let cnt = getDivisorCount(i);
if (cnt % 2 === 0) answer += i;
else answer -= i;
}
return answer;
}
const getDivisorCount = (num) => {
if (num === 1) return 1;
let cnt = 0;
let sqrt = Math.sqrt(num);
for (let i = 1; i < sqrt; i++) {
if (num % i === 0) cnt += 2;
}
if (num % sqrt === 0 ) cnt += 1;
return cnt;
}
(2)
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;
}
주의점
제곱근이 정수면 약수의 개수가 홀수다.
'알고리즘 > 문제' 카테고리의 다른 글
[프로그래머스 | Lv. 1 | JavaScript] 부족한 금액 계산하기 (0) | 2024.12.29 |
---|---|
[프로그래머스 | Lv. 1 | JavaScript] 문자열 내림차순으로 배치하기 (0) | 2024.12.29 |
[프로그래머스 | Lv. 1 | JavaScript] 수박수박수박수박수? (1) | 2024.12.28 |
[프로그래머스 | Lv. 1 | JavaScript] 가운데 글자 가져오기 (0) | 2024.12.28 |
[프로그래머스 | Lv. 1 | JavaScript] 내적 (0) | 2024.12.28 |
※ 쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.