[프로그래머스] 약수의 개수와 덧셈 💦

최유나·2024년 7월 3일
0

프로그래머스

목록 보기
33/53

✨ 약수의 개수와 덧셈

나의 풀이

function solution(left, right) {
    let answer = 0;
    
    for(let i = left; i <= right; i++){ // left를 i부터 시작하여 right까지 반복을 돌려서
        let count = 0; // 약수의 갯수 i를 저장할 count 값을 초기화 해 놓는다.
        for(let j = 1; j <= i; j++){ // j로 반복을 돌려 약수 구하기 
            if(i % j === 0){ // i가 j로 나누어 떨어지면 약수
                count++;  // i를 증감시켜라
            }
        }
        count % 2 === 0 ? answer += i : answer -= i;
        // 약수의 개수가 짝수면 더하고 홀수면 빼기
    }
    return answer;
}
console.log(solution(13, 17));
console.log(solution(24, 27));

다른사람의 풀이

제곱근이 정수면 약수의 개수가 홀수

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;
}

Math.sqrt() : 함수는 숫자의 제곱근을 반환
Number.isInteger(value) : 매개변수의 값이 정수면 true를, 아니면(NaN, infinity 포함) false를 반환

(출처 : Math.sqrt())
(출처 : Number.isInteger())

0개의 댓글

관련 채용 정보