코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/백준

    [2581] 백준 : 소수(C++)

    2020. 4. 26.

    by. 데롱디롱

    728x90

     

    * 접근 방법
    - 에라토스테네스의 체를 이용
    - loop를 돌며, num에 소수가 아닌 경우 1로 바꿔둠
    - loop를 돌며, 사용자가 입력한 M과 N에 소수가 있으면 answer에 push_back
    - 합계는 accumulate, 최소값은 *min_element를 이용하여 출력 (소수가 없으면 -1)

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <numeric>
    using namespace std;
    
    int main()
    {
    	vector<int> num(10001, 0);
    	vector<int> answer;
    	int M, N;
    	cin >> M >> N;
    
    	num[1] = 1;
    	for (int i = 2; i*i <= 10000; i++)
    	{
    		if (num[i] == 0)
    			for (int j = i * i; j <= 10000; j += i)
    				num[j] = 1;
    	}
    
    	for (int i = M; i <= N; i++)
    	{
    		if (num[i] == 0) answer.push_back(i);
    	}
    	if (answer.empty())
    		cout << -1;
    	else
    	{
    		cout << accumulate(answer.begin(), answer.end(), 0) << "\n";
    		cout << *min_element(answer.begin(), answer.end());
    	}
    
    	return 0;
    }
    저작자표시 (새창열림)

    '알고리즘 풀이 > 백준' 카테고리의 다른 글

    [4948] 백준 : 베르트랑 공준(C++)  (0) 2020.04.26
    [1929] 백준 : 소수 구하기(C++)  (0) 2020.04.26
    [1978] 백준 : 소수 찾기(C++)  (0) 2020.04.26
    [10870] 백준 : 피보나치 수 5(C++)  (0) 2020.04.26
    [10872] 백준 : 팩토리얼(C++)  (0) 2020.04.26

    댓글

    관련글

    • [4948] 백준 : 베르트랑 공준(C++) 2020.04.26
    • [1929] 백준 : 소수 구하기(C++) 2020.04.26
    • [1978] 백준 : 소수 찾기(C++) 2020.04.26
    • [10870] 백준 : 피보나치 수 5(C++) 2020.04.26
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바