티스토리 뷰
728x90
반응형
소수(Prime Number)는 1과 자기 자신으로밖에 나누어 떨어지지 않는 1 이외의 정수를 말한다.
지난 글에 올렸던 스트림으로 도는 이중 반복문을 소수 찾기에 응용해 보았다.
임의의 정수 m과 n사이의 소수를 전부 출력하는 코드이며,
단순이 2부터 자기 자신의 제곱근까지 전부 나누어보는 방법을 취한다.
조금 더 정확하게는 두 가지의 필터링을 사용하는데,
- 1보다 큰 수일 것
- 2부터 자기 자신의 제곱근(의 반올림)까지 나누어 떨어지지 않을 것
이다.
코드를 보자.
import java.util.Scanner;
import java.util.stream.IntStream;
public class SearchPrimeNumbers {
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 &&
IntStream.rangeClosed(2, (int)Math.sqrt(a))
.allMatch(b -> a % b != 0))
.forEach(a -> System.out.print(a + " "));
}
}
40 80
41 43 47 53 59 61 67 71 73 79
최종연산 종류에 따라 모든 소수를 합칠 수도 있고, 개수를 세는 것도 가능하다.
반응형
'Java+Spring > Java' 카테고리의 다른 글
[Java]스트림에서 개수, 합계, 평균, 최대, 최소를 한 번에! summarizingInt() (4) | 2022.10.13 |
---|---|
[Java]Printf()로 출력하기 (0) | 2022.10.11 |
[Java]문자열 앞 뒤 공백 제거, trim() vs. strip() (0) | 2022.10.11 |
[Java]무한히 큰 숫자 다루기, BigInteger (2) | 2022.10.09 |
[Java]스트림으로 이중 반복문 돌기, 구구단 출력 (2) | 2022.10.07 |
[Java]스트림으로 List ↔ Array 변환 (2) | 2022.10.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 세모
- 파이썬
- 야경
- java
- a6000
- Python
- 스프링
- 동적계획법
- spring
- 유럽여행
- 스트림
- 기술면접
- BOJ
- 맛집
- Algorithm
- 백준
- 중남미
- RX100M5
- 세계일주
- 지지
- 리스트
- 남미
- 자바
- 알고리즘
- 칼이사
- 유럽
- Backjoon
- 세계여행
- 면접 준비
- 여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함