포스팅한 1978: 소수 찾기와 똑같다고 봐도 무방한 문제.
에라토스테네스의 체를 코드로 구현할 수 있는 사람이 결과물을 다른 곳에 담아 출력하는 걸 할 줄 모를리가 없기 때문이다.
혹시라도 에라토스테네스의 체를 모른다면 예전에 작성한 포스팅을 읽어보자.
단순해서 한 번 보면 이해할 수 있다.
https://7357.tistory.com/104?category=1065986
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int firstInput = scanner.nextInt();
int secondInput = scanner.nextInt();
boolean[] numRange = new boolean[10001];
numRange[0] = numRange[1] = true;
for (int i=0; i*i< numRange.length; i++) {
if (!numRange[i]) {
for (int j=i*i; j< numRange.length; j += i) {
numRange[j] = true;
}
}
}
// 여기까지 에라토스테네스의 체를 이용한 소수 구하기 (이전 포스팅 참고)
ArrayList<Integer> numArr = new ArrayList<>();
// 몇 개가 들어올지 모르기 때문에 ArrayList를 사용했다.
int sum = 0;
// 합
for (int i=firstInput; i<=secondInput; i++) {
if (!numRange[i]) {
numArr.add(i);
sum += i;
}
// numRange[i]가 소수일 경우 i를 ArrayList에 넣고 sum 변수에 더해준다.
}
if (numArr.size() == 0) {
// 문제 조건 1. "인수가 없을 경우 -1을 반환한다"
System.out.println(-1);
} else {
int min = numArr.get(0);
// 배열의 첫 번째 인덱스에 가장 작은 수가 들어가게 되어있다.
System.out.println(sum);
System.out.println(min);
}
}
}
'CS ﹒ Algorithm > Baekjoon' 카테고리의 다른 글
JAVA백준 문제풀이 (11) 1929: 소수 구하기 (0) | 2022.07.06 |
---|---|
JAVA백준 문제풀이 (10) 11653: 소인수분해 (0) | 2022.07.05 |
JAVA백준 문제풀이 (8) 1978:소수 찾기 (0) | 2022.07.03 |
JAVA백준 문제풀이 (7) 2839:설탕 배달 (0) | 2022.07.02 |
JAVA백준 문제풀이 (6) 2775: 부녀회장이 될테야 (0) | 2022.07.01 |