문제

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

 

▶ 내가 푼 방식

//내가 작성한 코드
function solution(n) {
    var answer = 0;
    for(let i = 1; i<=n; i++){
        if (n%i === 0){
            answer += 1
        }
    }
    return answer;
}

 

 다른 유저가 푼 방식

// 유저 1 : 절반으로 나누어 중복을 제거하는 방식 
// n = 20, sqart(n) = 4.47, 
// 그러면 4*5 = 5*4 같으니까 +2
function solution(n) {
    let ans = 0;
    for (let i = 1; i < Math.sqrt(n); i++)
        if (n%i === 0) ans+=2;

    return Number.isInteger(Math.sqrt(n)) ? ans+1 : ans;
}

 

 배운 것들

     - 주어진 숫자에 루트(Math.sqaer())를 씌움으로써 중복되는 것을 막는 방법이 존재한다.  

+ Recent posts