알고리즘, 자료구조/프로그래머스

프로그래머스/약수의 개수와 덧셈/javascript

soohkang 2021. 6. 30. 17:11
728x90

작성한 코드

function findDivisor(number) {
    let count = 0;
    
    for(let i = 1; i <= number; i++) {
        // 약수 임
        if(number % i === 0) {
            count++;
        }
    }
    return count;
}
function solution(left, right) {
    let answer = 0;

    for(let i = left; i <= right; i++) {
        // findDivisor함수로 1, 2, 3,,,, 순차적으로 나누어 떨어지는지 확인
        let result = findDivisor(i);
        // 약수의 개수가 짝수인지 홀 수 인지 판단
        // 약수의 개수가 짝수인 수는 더하고
        // 약수의 개수가 홀수인 수는 뺀 수를 리턴
        if(result % 2 === 0 ) {
            answer += i;
        }
        else {
            answer -= i;
        }
    }
    return answer;
}

 

 

다른 분 코드

function solution(left, right) {
    var answer = 0;
    
    for(let i = left; i <= right; i++) {
        let count = 0;
        
        for(let j = 1; j <= i; j++) {
            if(i % j === 0) count++;
        }
        
        if(count % 2 === 0) answer += i;
        else answer -= i;
    }
    return answer;
}

참고한 블로그 출처 :

https://drcode-devblog.tistory.com/213

 

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

약수의 개수와 덧셈 문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 ret

drcode-devblog.tistory.com