Algorithm

11.22.(화) Programmers Java Lv1 소수 찾기

콜라든포비 2022. 11. 26. 16:53

소수 찾기

문제 설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

제한 조건

  • n은 2이상 1000000이하의 자연수입니다.

입력값

n result
10 4
5 3

Solution

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        int[] arr = new int[n+2];
        
        for(int i=2; i<=n; i++){
            arr[i] = i;
        }
        
        for(int i=2; i<=n; i++){
            if(arr[i]==0) continue;
            for(int j=i*2; j<=n; j+=i){
                arr[j]=0;
            }
        }
        
        for(int i=2; i<=n; i++){
            if(arr[i]!=0) answer+=1;
        }

        return answer;
    }
}