본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 소수찾기

by 씨니 2022. 4. 16.
728x90

▶ 문제

 

▶ 풀이방법

-에라토스테네스의 체를 사용해서 소수판별하여 풀었다.

만약 에라토스테네스의 체를 사용하는 방법을 몰랐다면 어려웠을것 같다...ㅎ

class Solution {
    public int solution(int n) {
        int answer = 0;
        //에라토스테네스의 체(소수 판별)
        int max = 1000000;
        boolean[] arr = new boolean[max];
        for(int i = 2; i < max; i++){
            for(int j = 2*i; j < max; j+=i){
                if(arr[j] == true) continue; 
                arr[j] = true; //소수가 아닌 수들은 true로 값을 바꿔줌.
            }
        }
        
        //입력된 값까지만 판별값 돌림.
        for(int i = 2; i <= n; i++){
            if(!arr[i]) answer++;
        }
        return answer;
    }
}
728x90

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. 문자열 다루기 기본  (0) 2022.04.16
Lv1. 서울에서 김서방 찾기  (0) 2022.04.16
Lv1. 수박수박수박수박수박수?  (0) 2022.04.16
Lv1. 문자열을 정수로 바꾸기  (0) 2022.04.16
Lv1. 시저암호  (0) 2022.04.16