시간 제한 : 2초, 난이도 : 실버 3, 백준 1929번
Math.sqrt() → 숫자의 제곱근을 반환한다.
N의 제곱근까지만 탐색하는 이유 → N이 a*b라고 가정했을 때, a와 b 모두 N의 제곱근보다 클 수 없기 때문에 N의 제곱근까지만 확인해도 전체 범위의 소수를 판별할 수 있다.
import java.util.Scanner;
public class Practice37 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int[]A = new int[n + 1];
for(int i = 2; i <= n ; i++) {
A[i] = i;
}
for(int i = 2; i <= Math.sqrt(n); i++) {
if(A[i] == 0) {
continue;
}
for(int j = i + i; j <= n; j = j + i) {
A[j] = 0;
}
}
for(int i = m; i <= n; i++) {
if(A[i] != 0) {
System.out.println(A[i]);
}
}
sc.close();
}
}