반응형
문제
풀이 및 코드
1. M ~ N 까지의 수 반복하여 약수 구하기
2. 약수일 경우 sum, min 값 구하기
* 소수는 본인과 1을 제외한 숫자로만 나누어지는 수이다.
이 문제가 어려울 경우 1978 소수찾기 문제 먼저 풀어보는 것을 추천.
package AlgorithmStudy.src.bronze;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B2581 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int M = Integer.parseInt(br.readLine());
int N = Integer.parseInt(br.readLine());
if (N > 10000 || M > N) return;
int min = N, sum = 0;
for (int i = M; i <= N; i++) { // M ~ N 까지의 수
for (int j = 2; j <= N; j++) { // 약수 구하기
if (i % j == 0 && i != j) { // 약수가 아닐경우 넘기기
break;
} else if (i % j == 0 && i == j) { // 약수일 경우
sum += i; // sum 추가
if (min > i) { // min 이 i 보다 클 경우
min = i; // i 로 min 설정.
}
}
}
}
if (sum == 0) {
System.out.println(-1);
} else {
System.out.println(sum);
System.out.println(min);
}
}
}
반응형