티스토리 뷰

1. 문제

https://www.acmicpc.net/problem/2581

 

2. 풀이

#include <stdio.h>

int main(void) {
    int m, n;
    int total = 0;
    int min = 0; // 소수의 최소값
    int isPrime; // 해당 수의 약수 개수

    scanf("%d", &m);
    scanf("%d", &n);

    for (int i = m; i <= n; i++) {
        if (i < 2) continue; // 2 미만의 수는 소수가 아님
        isPrime = 1; // 소수라고 가정
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                isPrime = 0; // 소수가 아님
                break;
            }
        }

        if (isPrime) { // 소수일 때
            // printf("소수: %d\n", i);
            total += i;
            if (min == 0) { // 첫 번째 소수 발견 시만 min 설정
                min = i;
            }
        }
    }

    if(total > 0){
        printf("%d\n%d", total, min);
    } else {
        printf("-1");
    }

}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함