Contents

[백준 1929]소수 구하기 - JAVA 풀이

   Aug 26, 2021     1 min read     - Comments

바로가기

문제

문제


해석

  1. 숫자 N, M이 주어졌을 때, N과 M사이의 소수를 출력하는 문제

코드

import java.util.*;
import java.io.*;

public class Main
{  
    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        
        int M = Integer.parseInt(st.nextToken());
        int N = Integer.parseInt(st.nextToken());         
        boolean[] c = calc(N+1);
                
        for(int i = M; i <= N; i++){
            if(!c[i]){
                sb.append(i).append("\n");
            }                
        }
        System.out.println(sb);
    }
    
    public static boolean[] calc(int n){
        boolean[] check = new boolean[n];
        check[1] = true;
        
        for(int i = 2; i < n; i++){
            if(check[i])
                continue;
            for(int j = i*2; j < n; j+=i)
                check[j] = true;            
        }
        
        return check;
    }
}