
#include <iostream>
using namespace std;
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int M, N;
cin >> M >> N;
int total = 0;
int min_prime = -1;
for (int i = M; i <= N; i++) {
if (is_prime(i)) {
total += i;
if (min_prime == -1) {
min_prime = i;
}
}
}
if (total == 0) cout << "-1";
else {
cout << total << endl << min_prime;
}
return 0;
}
소수인지 판별하는 함수를 통해 값을 출력하도록 하였다

#include <iostream>
using namespace std;
int main() {
int N, K;
cin >> N >> K;
int j = 0;
int ans[100000];
for (int i = 1; i <= N; i++) {
if (N % i == 0) {
ans[j] = i;
j++;
}
}
if (j < K) cout << "0";
else {
cout << ans[K-1];
}
return 0;
}
for문을 통해 약수를 찾아 ans 리스트에 넣고, K번째 약수를 리스트에서 뽑아내기 위해 인덱스를 K-1로 지정하여 출력하였다