본문 바로가기
Java/알고리즘

[Java] 백준 1929번 : 소수 구하기

by EricJeong 2019. 9. 5.

 

에라스토테네스의 체를 이용하시면 쉽게 풀 수 있습니다.

제가 푼 방식은 좀 오래걸리긴 하네요

 

 

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]);
			}
		}
	}
	

}

 

 

 

 

댓글