⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 합성수 찾기 🔢 | JS

하나둘세현 2024. 7. 15. 10:01
728x90

문제

약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.

해결 과정

function solution(n) {
    let answer = 0;
    for(let i = 1; i <= n; i++) {
        for(let j = 2; j < i; j++) {
            if(i % j === 0) {
                answer++;
                break;
            }
        }
    }
    return answer;
}

 

이중for문을 활용해 문제를 풀었다. 

외부 for문의 i는 자연수가 증가되는 for문이다. 자연수 n이 i와 같을때까지 for문은 계속 돈다.

내부 for문의 경우 j = 2부터 시작한다. 2부터 시작하는 이유는 i로 나누기 위해서 이고 i보다 숫자가 작을 때까지 계속된다.

if문안에 break를 작성해야만 값이 제대로 출력이되었다.

if문안에 break를 작성한 이유는 j에서의 반복을 없애기 위해서 작성했다고 이해를 했다만.. 그렇다.

 

 

 

728x90