약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ n ≤ 100
입출력 예
n | result |
---|---|
10 | 5 |
15 | 8 |
function solution(n) {
let count = 0;
for(let i=4; i<=n; i++){
let isNum = false;
for(let j=2; j<i; j++){
if(i%j === 0){
isNum = true;
break;
}
}
if(isNum === true) count++
}
return count
}
합성수 i
는 1과 i
외에 다른 자연수로 나누었을 때 나머지가 없는 수이다
n
이하의 합성수 i
는 4부터 n
까지 범위 내에 존재한다 let count = 0; // 합성수의 개수
for(let i=4; i<=n; i++){
// 이하 2~4.입력
}
return count;
isNum
으로 선언, 초기화하고let isNum = false
i
의 약수j
는 2부터 i
미만의 범위 내에 존재한다고 할 때i
를 j
로 나눈 나머지가 0이면 합성수이므로 isNum = true
로 재할당하고 순회를 종료시킨다for(let j=2; j<i; j++){
if(i%j === 0){
isNum = true;
break;
}
}
isNum = true
이면 count
를 증가시킨다 if(isNum === true) count++