[Programmers] 합성수 찾기

그래도 해야지·2023년 5월 2일
0

Programmers

목록 보기
29/40
post-thumbnail

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

🤔 해설

이중for문(어렵다!!)

  1. 첫번째 for문 - n이하의 자연수 돌리기
  2. 두번째 for문 - i보다 작은 숫자들을 돌리는데 i를 j로 나눴을 때 0이라면 약수이기 때문에 counter +1을 해준다.
  3. counter가 3이상이면 answer에 +1을 해준다.

✅ 답

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

0개의 댓글