백준(C언어)/22년 8월

8월 7일(일) - 8단계(2581번)

C0MPAS 2022. 8. 7. 22:27

8단계 - 2581번https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

 

문제점

 

풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>

int main(void)
{
	int m, n;
	int min = 0;
	int hap = 0;
	scanf("%d", &m);
	scanf("%d", &n);

	for (int i = m; i <= n; i++)
	{
		int count = 0;
		if (i == 1)
		{
			continue;
		}
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				count = 1;
				break;
			}
		}
		if (count == 0) 
		{
			if (min == 0) 
			{
				min = i;
			}
			hap = hap + i;
		}
	}

	if (hap != 0)
	{
		printf("%d\n", hap);
		printf("%d", min);
	}
	else
	{
		printf("-1");
	}

	return 0;
}

 

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