에라스토테네스의 체를 이용하시면 쉽게 풀 수 있습니다.
제가 푼 방식은 좀 오래걸리긴 하네요
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int M = in.nextInt();
int N = in.nextInt();
int[] nums = new int[(int) (N+1)];
for(int i=2; i<=N; i++) {
nums[i] = i;
}
for(int i=2; i<=Math.sqrt(N); i++) {
if(nums[i] == 0) {
continue;
}
int temp = i;
for(int j = i+1; j<=N; j++) {
if(j % temp == 0) {
nums[j] = 0;
}
}
}
for(int i = M; i<=N; i++) {
if(nums[(int) i] != 0) {
System.out.println(nums[(int) i]);
}
}
}
}
'Java > 알고리즘' 카테고리의 다른 글
[Java] 백준 1085번 : 직사각형에서 탈출 (0) | 2019.09.05 |
---|---|
[Java] 백준 4948번 : 베르트랑 공준 (0) | 2019.09.05 |
[Java] 백준 2581번 : 소수 (0) | 2019.09.05 |
[Java] 백준 1978번 : 소수 찾기 (0) | 2019.09.05 |
[Java] 백준 6064번 : 카잉 달력 (0) | 2019.08.21 |
댓글