코딩 테스트/프로그래머스 level1
약수의 개수와 덧셈
fullfish
2022. 9. 6. 18:33
코드
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;
}
제곱근이 정수면 약수의 갯수가 홀수라는 사실 이용