백준 1929 소수 구하기 [JAVA]

Ga0·2023년 5월 25일
0

baekjoon

목록 보기
56/123

문제 해석

  • 문제가 요구하는 바는 Simple 하다
  • MN사이에 공백을 두고 입력을 받고, 입력을 받았다면 M이상이고 N이하인 모든 소수(자기 자신과 1으로만 나누어지는) 구하면 된다.

코드

import java.io.*;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class Main {
    //입력 부분
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int M  = Integer.parseInt(st.nextToken());
        int N = Integer.parseInt(st.nextToken());

        br.close();

        printSection(M, N);
    }

    //소수 판별 & 출력 부분
    static void printSection(int M, int N) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        for(int i = M; i <= N; i++){
            BigInteger bigNumber = new BigInteger(String.valueOf(i));

            if(bigNumber.isProbablePrime(10)){ //소수이면 버퍼에 작성
                bw.write(i + "\n");
            }
        }

        bw.flush();
        bw.close();
    }
}

결과

느낀 점

  • 어제 포스트와 연장선의 느낌이라 크게 어려운 점은 없었지만 메모리와 시간을 많이 써서 보완이 필요할 것 같다.

0개의 댓글