티스토리 뷰

728x90
반응형

문제

 

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

 

입력

 

첫째 줄에 자연수 M과 N이 빈칸을 사이에 두고 주어진다(1 ≤ M ≤ N ≤ 1,000,000).

M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

 

출력

 

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

 

풀이

 

이중으로 스트림을 이용해서 간단하게 풀었다.

 

반복해서 사용하다 보니 스트림에 조금은 익숙해지는 기분이 든다.

import java.util.Scanner;
import java.util.stream.IntStream;

public class Prob1929Stream {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int m = sc.nextInt();
        int n = sc.nextInt();

        IntStream.rangeClosed(m, n)
                .filter(a -> a > 1)
                .filter(a ->
                        IntStream.rangeClosed(2, (int) Math.sqrt(a))
                                .allMatch(b -> a % b != 0))
                .forEach(System.out::println);
    }
}
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함