본문 바로가기
PRO

프로그래머스 1단계 : 약수의 개수와 덧셈

by 코빈_ 2022. 11. 23.

프로그래머스 1단계 : 약수의 개수와 덧셈

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


제한 사항

1 ≤ left ≤ right ≤ 1,000

나의 문제 풀이

for문 속에 또 for문을 이용하여 i 와 j 값을 서로 대입해준뒤에 if문을 사용하여 각 for문에 나온 count 값을
2를 나누고 1이 되는 값은 빼주고 홀수이니깐, 나머지는 짝수이니 더한다라고 했습니다.(잘 모릅니다..)

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

다른 사람 문제 풀이

이 분은 Number에 정수인지 판별하고 또 한 제곱근 수학 메서드를 이용하여 푼 것 같습니다.

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

댓글


INFORMATION

javascript

css

html