문제설명
소스코드
#include <iostream>
using namespace std;
int main()
{
int N, M; int sum = 0; int min = 10000;
bool flag = false; bool flag2 = false;
cin >> N >> M;
for (int i = N; i <= M; ++i)
{
for (int j = 2; j < i; ++j)
{
if (flag == true) break; // 이미 소수가 아닌 수로 판정되었다면 탈출
if (i % j == 0) flag = true; // i가 j로 나누어떨어지면 소수가 아님
}
if (flag == false) // i가 j로 나누어 떨어지는 수가 하나도 없다면 (소수라면)
{
if (i == 1) continue; // 1은 소수가 아님
flag2 = true; // 소수가 하나라도 있다고 체크하기 위해 flag를 true로 바꿈
sum += i; // 소수 총합
if (i < min) min = i; // 가장 작은 소수
}
else flag = false; // 플래그 초기화
}
(flag2 != false) ? cout << sum << endl << min : cout << "-1"; // 삼항 연산자
}
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 10단계 - 3009번 문제 (네 번째 점) (1) | 2023.05.13 |
---|---|
[C++] 백준 9단계 - 11653번 문제 (소인수분해) (0) | 2023.05.13 |
[C++] 백준 9단계 - 1978번 문제 (소수 찾기) (0) | 2023.05.12 |
[C++] 백준 9단계 - 9506번 문제 (약수들의 합) (0) | 2023.05.12 |
[C++] 백준 9단계 - 2501번 문제 (약수 구하기) (0) | 2023.05.11 |