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

조예빈·2024년 8월 24일
0

Coding Test

목록 보기
120/138

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

for문을 n까지 반복시켜 n이하의 모든 숫자를 탐색한다. 이후, for문을 한 번 더 돌려 n에 대한 모든 숫자를 탐색하고, i가 j로 나누어지는지를 계산한다. 이 때, 3번 나누어진다면 합성수이므로 diviCnt값을 1증가시킨다.

예를 들면 다음과 같다.
i가 6이면, j가 1,2,3,4,5,6이다. 이 때, i%j==0인 경우는 1,2,3,6으로 총 4가지이므로 diviCnt값은 4가 되고, answer값도 1 증가하게 되는 것이다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1; i<=n; i++){ //n이하의 모든 수를 돌며
            int diviCnt = 0; //약수의 개수
            for(int j=1; j<=n; j++){ //n이하의 숫자의 약수의 개수 찾기
                if(i % j == 0){
                    diviCnt++;
                }
            }
            if(diviCnt >= 3){
                answer ++;
            }
        }
        return answer;
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글