순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
● 1 ≤ n ≤ 1,000,000
n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.
n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.
function solution(n) {
let reuslut = [];
for (let i = 0; i <= n; i++) {
if (n % i === 0) {
reuslut.push(i);
}
}
return reuslut.length;
}
이 문제는 4시간 넘게 삽질하다가 결국 구글에 검색하여 풀은 문제이다. 결국 내가 풀은 문제는 아니다. 일단 순서쌍이라는 개념을 내가 이해하지 못했다. 그리고 이해하지 못한 상태에서 코드로 옮길려고 하니, 코딩이 안될 수 밖에...
순서쌍의 갯수는 약수의 갯수와 동일하다 라는 것이 위 코드의 핵심이다. 약수를 구해서 reslut 배열에 넣은 후에 배열의 length를 반환하였다.
끝!