
코드
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
findDivisors(i) % 2 === 0 ? (result += i) : (result -= i);
}
return result;
}
function findDivisors(n) {
const divisors = [];
for (let i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
divisors.push(i);
if (n / i != i) divisors.push(n / i);
}
}
return divisors.length;
}
약수를 구하는 함수 findDivisors를 선언하고
이 함수를 이용해서 약수의 갯수를 구했다
더 좋은 코드
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;
}
제곱근이 정수면 약수의 갯수가 홀수라는 사실 이용
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
| 시저 암호 (0) | 2022.09.07 |
|---|---|
| 서울에서 김서방 찾기 (0) | 2022.09.07 |
| 가운데 글자 가져오기 (0) | 2022.09.06 |
| 이상한 문자 만들기 (0) | 2022.09.06 |
| 행렬의 덧셈 (0) | 2022.09.05 |