백준 2581 c++
#include <iostream>
using namespace std;
int input(int lower, int upper);
int sum_prime(int M, int N);
int min_prime(int M, int N);
bool check_prime(int K);
void print_result(int total, int min);
int main(void)
{
int M, N;
M = input(1, 10000);
N = input(1, 10000);
print_result(sum_prime(M, N), min_prime(M, N));
return 0;
}
int input(int lower, int upper)
{
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
int sum_prime(int M, int N)
{
int i;
bool prime;
int total = 0;
for (i = M; i <= N; i++)
{
prime = check_prime(i);
if (prime == 1)
{
total = total + i;
}
else
{
;
}
}
return total;
}
int min_prime(int M, int N)
{
int i;
bool prime;
int min = -1;
for (i = M; i <= N; i++)
{
prime = check_prime(i);
if(prime == 1)
{
min = i;
break;
}
else
{
min = -1;
}
}
return min;
}
bool check_prime(int K)
{
int i, j;
bool prime = 0;
int temp;
for (i = 2; i < K; i++)
{
//1은 소수 아님, 2는 소수임
if (K % i == 0)
{
prime = 0;
break;
}
else
{
prime = 1;
}
}
if (prime == 1 || K == 2)
{
prime = 1;
return prime;
}
else
{
return prime;
}
}
void print_result(int total, int min)
{
if (total == 0)
{
cout << min << endl;
}
else
{
cout << total << "\n" << min << endl;
}
return;
}