문제설명
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
입출력 예
n | result |
10 | 5 |
15 | 8 |
코드
const solution = (n) => {
let arr = new Set();
for(let i = 1; i <= n; i++){
for(let j = 2; j < i; j++){
if(i % j === 0)
arr.add(i);
}
}
return arr.size;
}
풀이
let arr = new Set();
arr는 new Set을 통해 고유한 값들만 있도록 합니다.
더보기
set
: 고유한 값들의 집합을 다루는 자료구조
=> 순서가 없는 중복되지 않은 데이터의 집합
const zero= new Set(); // Set(0) {size: 0}
const three = new Set([1, 2, 3]); // Set(3) {1, 2, 3}
for문을 통해 약수를 구하고 arr에 add를 사용하여 약수들을 추가합니다.
for(let i = 1; i <= n; i++){
for(let j = 2; j < i; j++){
if(i % j === 0)
arr.add(i);
}
}
size를 통해 arr의 개수를 출력합니다.
return arr.size;
'자바스크립트' 카테고리의 다른 글
[JavaScript] 팩토리얼 (0) | 2023.09.18 |
---|---|
[JavaScript] 최댓값 만들기 (1) (0) | 2023.09.18 |
[JavaScript] 주사위의 개수 (0) | 2023.09.15 |
[JavaScript] 배열 회전시키기 (0) | 2023.09.15 |
[JavaScript] 점의 위치 구하기 (0) | 2023.09.15 |