정신과 시간의 방
카테고리
작성일
2024. 8. 11. 21:28
작성자
risehyun
  • 문제

 

  • 풀이
#include <iostream>
#include <queue>

using namespace std;

int FindPrime(int input)
{
	// 음수, 1은 소수가 아니므로 제외한다.
	if (input < 2)
	{
		return 0;
	}

	for (int i = 2; i < input; i++)
	{
		// 나머지가 없다면 소수가 아니므로 제외한다.
		if (input % i == 0)
		{
			return 0;
		}
	}

	return 1;
}

int main()
{
	int m = 0, n = 0, min = 0;
	queue<int> q;

	cin >> m >> n;

	for (int i = m; i <= n; i++)
	{
		int result = FindPrime(i);

		if (result == 1)
		{
			q.push(i);
		}
	}

	int size = q.size();

	if (size == 0)
	{
		cout << -1;
	}
	else
	{
		min = q.front();

		int sum = 0;

		for (int i = 0; i < size; i++)
		{
			sum += q.front();
			q.pop();
		}

		cout << sum << '\n' << min;
	}

	return 0;
}