티스토리 뷰

Algorithm/BOJ

백준 2581번 C++

poopooreum 2023. 8. 9. 19:39
반응형
백준 2581번 소수

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

2581번: 소수

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

www.acmicpc.net



정답 코드

#include<iostream>
using namespace std;
int find(int n);
int main() {
	int m, n;
	cin >> m >> n;
	int min = 10001;
	int cnt = 0,sum=0;
	for (int x = m; x <= n; x++) {
		int res = find(x);
		if (res == 1) {
			cnt++;
			sum += x;
			if (min > x)
				min = x;
		}
	}
	if (cnt == 0)
		cout << -1;
	else
	cout << sum << "\n" << min;
}
int find(int n) {
	int cnt = 0;
	if (n == 1)
		return 0;
	if (n == 2)
		return 1;
	else {
		for (int x = 1; x <= n; x++) {
			if (n % x == 0)
				cnt++;
		}
	}
	if (cnt == 2)
		return 1;
	else
		return 0;
}


문제 풀이

기본적인 소수 구하는 방법을 사용하였습니다. 에라토스테네스의 체를 이용해서도 구할 수 있습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 2587번 C++  (0) 2023.08.10
백준 2583번 C++  (0) 2023.08.10
백준 2577번 C++  (0) 2023.08.09
백준 2566번 C++  (0) 2023.08.09
백준 2563번 C++  (0) 2023.08.09
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함