티스토리 뷰

반응형

소수 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 89660 34788 29570 38.932%

문제

자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.

예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.

입력

입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다.

M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다.

출력

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

단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

예제 입력 1 복사

60
100

예제 출력 1 복사

620
61

예제 입력 2 복사

64
65

예제 출력 2 복사

-1
#include <iostream>
#include <stdlib.h>
#include <string.h>

using namespace std;


bool sosu(int n)
{
	for (int i = 2; i < n; i++)
	{
		if (n % i == 0)
			return false;


	}
	return true;
}

int main(void)
{


	int n, m, sum = 0, min = 21400000;
	cin >> n;
	cin >> m;

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

		if (sosu(i) == true && i != 1)
		{
			sum += i;
			if (i < min)
				min = i;
		}
	}
	if (sum == 0)
	{
		printf("%d", -1);
		return 0;
	}


	printf("%d\n", sum);
	printf("%d", min);

	return 0;



}

 

1) 소수를 판별하는 함수 구현

2) 소수면 값을 더한다

3) 최소값을 찾는다

4) sum=0이면 소수가 없는 것이므로 종료한다.

반응형

'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글

백준 1929 소수구하기 C/C++  (0) 2022.06.26
백준 11653 소인수분해 C/C++  (0) 2022.06.25
백준 1978 소수 찾기 C/C++  (0) 2022.06.25
백준 10757 큰 수 A+B C/C++  (0) 2022.06.25
2839 설탕배탈(C/C++)  (0) 2022.06.24
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함