자바스크립트

[JavaScript] 합성수 찾기

코딩하는둥이 2023. 9. 18. 10:29

문제설명

약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 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