본문 바로가기

코딩 문제/프로그래머스

프로그래머스 - 코딩테스트 - Level1 - 소수 찾기

728x90

 

풀이

 

class Solution {

      public int solution(int n) {

            int answer = 0;

            int count = 0;

            int num = 0;

            int plusNum = 0;

            int[] arr = new int[n]; // 배열 선언

 

            for(int i=2; i<=n; i++){

                  num = i;

                  plusNum = i;

                  if(arr[i-1] == 0){ // 배열 값이 0일 때만

                        for(int j=i; j<=n; j++){ // 소인수 찾기

                              if(i%j == 0){

                                    count = j;

                                    break;

                              }

                        }

                        if(count == i){

                              answer++;

                        }

                        while(true){

                              if(plusNum > n){

                                    break;

                              }

                              arr[plusNum-1] = 1;

                              plusNum += num;

                        }

                  }

            }

 

            return answer;

      }

}

 

결과