백준 1929 : 소수 구하기

자연수 M 이상 N 이하의 모든 소수를 구하는 문제입니다.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
for (int i = N; i <= M; i++) {
if (isPrime(i)) {
System.out.println(i);
}
}
}
public static boolean isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
}
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
boolean[] isPrime = new boolean[M + 1];
Arrays.fill(isPrime, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= M; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= M; j += i) {
isPrime[j] = false;
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = N; i <= M; i++) {
if (isPrime[i]) sb.append(i).append("\n");
}
System.out.print(sb);
}
}