[프로그래머스/Lv.0] 합성수찾기

Lainlnya·2023년 2월 6일
0

프로그래머스

목록 보기
10/49
post-thumbnail

문제

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

제한 사항

  • 1 ≤ n ≤ 100

입출력 예

문제 풀이

function solution(n) {
  let count = 0;
  while (n > 0) {
    let temp = 0;
    for (let i = 1; i * i <= n; i++) {
      if (n % i === 0) {
        temp++;
        if (n / i !== i) temp++;
      }
    }
    if (temp >= 3) count++;
    n--;
  }
  return count;
}

추가

합성수를 구할 때 사용했던 공식은 약수를 구할 때 사용했던 공식과 동일하다.
코딩테스트에서 약수와, 최대공약수들을 구할 일이 있을지도 모르니 알아두는 것도 좋을 것 같다. 그리고 Math함수를 사용해서 n을 계산하는 것보다 i를 곱해서 계산하는 것이 프로그램의 성능부문에 있어서 좋아서 i를 곱해서 계산하였다.

profile
Growing up

0개의 댓글