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

당당·2023년 4월 18일
0

프로그래머스

목록 보기
1/245

https://school.programmers.co.kr/learn/courses/30/lessons/120846

📔문제

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


🚫제한사항

1 ≤ n ≤ 100


📝입출력 예

nresult
105
158

📝입출력 예 설명

입출력 예 #1

10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다.

입출력 예 #2

15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다.


🧮알고리즘 분류

  • 수학
  • 반복문

📃소스 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int count=0;
        
        while(n!=0){
            count=0;
            for(int i=1;i<=n;i++){
                if(n%i==0){
                    count++;
                }
            }
            if(count>2){
                answer++;
            }
            n=n-1;
        }
        
        return answer;
    }
}

📰출력 결과


📂고찰

n이 0이 될 때 까지 n번 반복 시키면서 n의 크기를 -1씩 해주었다.

만약 n이 for문 n부터 1까지로 해서 count++가 2보다 크면 합성수로 계산했다.

profile
MySQL DBA 신입 지원

0개의 댓글