정수 n이 주어질 때 정확히 3개의 divisor가 존재하면 true를 리턴하고 아니라면 false를 리턴하는 문제이다
정수 k에 대해 m * k = n 을 만족하면 m은 n의 divisor라고 한다
Example 을 보자
1번 예시는 divisor 가 1, 2 뿐이므로 false가 리턴된다
const isThree = function(n) {
let count = 0;
if(n <= 3) return false;
for(let i = 1; i <= n; i++) {
if(Number.isInteger(n / i)) count ++;
if(count > 3) return false
}
return count === 3 ? true : false
};
우선 문제를 자세히 보면 n <= 3일 경우에는 divisor가 3이 될 수 없으므로 예외처리를 먼저 해주었다
그 다음 1부터 n까지 for문을 돌면서 만약 n / i 값이 정수라면 count 값을 1 증가시켜주었고 count > 3 일 때도 false를 리턴해줘야 하므로 if 문을 이용해 체크해주었다
for문이 끝나면 count 의 값에 따라 true , false 를 리턴해주었다
submit을 해보니
정답이었다!