Java/알고리즘
[Java] 백준 1929번 : 소수 구하기
EricJeong
2019. 9. 5. 10:27
에라스토테네스의 체를 이용하시면 쉽게 풀 수 있습니다.
제가 푼 방식은 좀 오래걸리긴 하네요
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]);
}
}
}
}