[C++] baekjoon 2581, 2051

oat·2024년 3월 18일

everydayBOJ

목록 보기
39/51

Day 39

2581

문제

code

#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;
}

풀이 과정

소수인지 판별하는 함수를 통해 값을 출력하도록 하였다


2051

문제

code

#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로 지정하여 출력하였다

0개의 댓글