본문 바로가기
알고리즘 문제/프로그래머스_Lv1 도장깨기

[프로그래머스] 약수의 개수와 덧셈 (Javascript)

by 스코필 2024. 12. 19.

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/77884

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

두 정수 left 와 right 가 매개변수로 주어집니다. left 부터 right 까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 리턴하도록 함수를 완성하세요.

제한 사항

  • 1 <= left <= right <= 1,000

 

✅ Code - 성공

function solution(left, right) {
    var answer = 0;
    
    function prime_check(num) {
        let cnt = 0;
        for (let i = 1; i <= parseInt(num ** (1/2)); i++) {
            if (num % i === 0) i * i === num? cnt += 1 : cnt += 2;
        }        
        return cnt % 2 ? false : true;
    }
    
    for (let i = left; i <= right; i++) {
        prime_check(i)? answer += i : answer -= i;
    }
    
    return answer;
}