[프로그래머스/Lv1/자바스크립트] 약수의 개수와 덧셈

2023. 5. 11. 12:08

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


코드

function getDivisor(n) {
    divisorList = [];
    for (var i = 1; i <= Math.sqrt(n); i++) {
        if (n % i == 0) {
            divisorList.push(i);
            if (i != n / i) {
                divisorList.push(n / i);
            }
        } 
    }

    return divisorList;
}

function solution(left, right) {
    var answer = 0;
    for (var i = left; i <= right; i++) {
        if (getDivisor(i).length % 2 == 0) {
            answer += i;
        }
        else {
            answer -= i;
        }
    }

    return answer;
}

메모

약수를 구하는 알고리즘을 사용함. 약수의 배열을 반환하기 때문에 배열의 개수를 세서 짝수일 때 answer에 입력값을 더하고, 홀수일 때 answer에 입력값을 뺌.

https://cheolyong.tistory.com/8

 

약수 구하기

def find_num_divisor(n): divisor_list = [] for i in range(1, int(sqrt(n)) + 1): if n % i == 0: divisor_list.append(i) if i != n / i: divisor_list.append(int(n / i)) return list(set(divisor_list)) 수를 입력하면 해당 수의 약수들을 리스트 형

cheolyong.tistory.com

BELATED ARTICLES

more