본문 바로가기
JAVA/백준

[Java] 백준 1929 소수 구하기 - 소수 구하기(1)

by 푸_푸 2022. 11. 19.
728x90

백준 1929 소수 구하기
문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.


제출

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

 

예제

3 16

결과

백준 1929 소수 구하기

 

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

 

728x90

댓글