반응형
풀이
- 이전 소수 찾기 문제를 통해 알게 된
- 에라토스테네스의 체를 활용하여 해결
- 우선 값이 더 큰 N을 기준으로 boolean 배열을 만들고
- 2부터 배수가 되는 인덱스에 값을 true로 변경하고
- 이후 범위를 M과 N 사이에 해당 하는 값을 조건에 따라처리하여 해결
import java.util.Scanner;
public class _2581 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
boolean[] li = new boolean[N+1];
li[1] = true;
for (int i=2; i<N; i++) {
for (int j=i*2; j<=N; j+=i) {
if (!li[j]) li[j] = true;
}
}
int mn = 0;
int hap = 0;
for (int i=M; i<=N; i++) {
if (!li[i]) {
if (mn==0) mn = i;
hap+=i;
}
}
if (hap==0) System.out.println(-1);
else {
System.out.println(hap);
System.out.println(mn);
}
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 17103번] 골드바흐 파티션 (0) | 2024.11.13 |
---|---|
[백준, 자바, 4948번] 베르트랑 공준 (0) | 2024.11.13 |
[백준, 자바, 4134번] 다음 소수 (1) | 2024.11.12 |
[백준, 자바, 1735번] 분수 합 (0) | 2024.11.12 |
[백준, 자바, 13241번] 최소공배수 (0) | 2024.11.12 |