💻JavaScript/코딩테스트

약수의 개수와 덧셈(Addition and Number of Divisors)

영진학생 2024. 12. 26. 20:44

문제 설명

 

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

 

 

제한 조건

 

1 ≤ left ≤ right ≤ 1,000

 

 

📄 문제

function solution(left, right) {
    var answer = 0;
    return answer;
}

 

 

💻 공부 후 코드

function solution(left, right) {
    
    let result = 0; //결과 초기값 할당
    for (let i = left; i <= right; i++) { //left부터 right 까지 반복
        if(Number.isInteger(Math.sqrt(i))) { //i의 제곱근이 정수인지 확인
            result -= i; //수를 빼주거나
        } else {
            result += i; //더해준다
        }
    }
    return result;
}

 

 

📚 배운 점

제곱수는 약수의 개수가 홀수라는 아이디어를 얻었고 제곱근이 정수일 때 수를 빼주고 조건에 해당이 되지 않는다면 수를 더해주는 로직을 구현했습니다 :)

 

1. 제곱수 = 약수의 갯수가 홀수, 제곱수의 제곱근은 정수