문제설명

 

소스코드

#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"; // 삼항 연산자
	
}