본문 바로가기
컴퓨터 공학/백준

[백준] JAVA 자바 : 소수 찾기 (1978번)

by kim-dev 2024. 1. 21.
반응형

제목과 같이 소수를 찾는 문제이다.
사실 에라토스테네스의 체 알고리즘을 써야 할 것 같은데… 나는 그런 개념이 존재한다는 사실을 이 문제를 다 풀고 나서야 알았다…ㅋㅋㅋㅋㅋ
다음 문제가 소수 구하기던데, 그 문제를 풀 때 에라토스테네스의 체를 써봐야겠다!

 

import java.io.*;

public class PrimeNumber_1978 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        int N = stoi(br.readLine());
        int cnt = N; // 소수의 개수. N개에서 합성수를 만날 때마다 1씩 감소시킬 것.
        String[] n_list = br.readLine().split(" ");
        
        for (int i=0; i<N; i++) {
            int n = stoi(n_list[i]);
            
            if (n == 1) { // 1은 소수가 아니므로
                cnt--; // 개수를 하나 감소시킨다
            } else { // 1이 아닌 수를 만나면
                for (int j=2; j<n; j++) {
                    if (n%j == 0) { // 그 수가 만약 합성수라면
                        cnt--; // 소수의 개수를 하나 감소시킨다
                        break;
                    }
                }
            }
        }
        
        sb.append(cnt);
        System.out.print(sb);
        
        br.close();
    }
    
    public static int stoi(String str) {
        return Integer.parseInt(str);
    }

}
 

로그인

 

www.acmicpc.net

 

 

작성일자: 2023-09-09