ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.