-
[BOJ] 2581 :: 소수알고리즘/BOJ(C++) 2018. 6. 1. 23:18반응형
https://www.acmicpc.net/problem/2581
N부터 M까지의 소수를 구해서 벡터에 저장해주는 것이 핵심입니다!
벡터에 모든 원소를 탐색하며 총 합을 구하고, 작은 수부터 소수를 구하는 함수를 돌릴 것이기 때문에 항상 최솟값이 벡터의 가장 앞에 오므로 최솟값은 v[0]으로 접근할 수 있습니다.
소수가 존재하지 않을 경우 vector이 비여서 따로 예외처리 해주는거 잊어서 런탐에러 난건 안비밀.....
#include <iostream>#include <vector>using namespace std;bool find(int n){if (n == 1)return false;bool flag = true;for (int i = 2; i < n; i++){if (n%i == 0){flag = false;break;}}return flag;}int main(){int a, b;cin >> a >> b;vector<int> v;for (int i = a; i <= b; i++){bool flag = find(i);if (flag){v.push_back(i);}}if (v.empty())cout << "-1" << endl;else{int sum = 0;for (int i = 0; i < v.size(); i++){sum += v[i];}cout << sum << endl;cout << v[0] << endl;}}댓글로 질문해주세요 :)반응형'알고리즘 > BOJ(C++)' 카테고리의 다른 글
[BOJ] 6679 :: 싱기한 네자리 숫자 (0) 2018.06.02 [BOJ] 8958 :: OX퀴즈 (0) 2018.06.02 [BOJ]2908_상수 (0) 2018.06.01 [BOJ]10886_0 = not cute / 1 = cute (0) 2018.06.01 [BOJ]15780_멀티탭 충분하니? (0) 2018.05.27