메뉴 건너뛰기

Programing

Project Euler

7

관리자 2023.05.24 22:40 조회 수 : 105

3번에서 소수 판별하던 코드를 그대로 가져와서 만든 코드

소수 개수가 조건에 충족될 때까지 무한 반복하면서 소수라면 개수를 하나 올리고 소수를 벡터에 저장하여 다음 판별에 사용하도록 하였다.

기본적으로 2라는 소수를 알고 있고 벡터에 넣어두었으니 반복은 10000번만 하면 된다. 

그리고 반복문이 끝나면서 i가 1 증가하므로 출력 때는 1을 빼줘야 한다. 

 

#include <cstdio>

#include <algorithm>

#include <vector>

 

using namespace std;

 

vector<long long> Prime;

int main()

{

    long long i=2;

    Prime.push_back(2);

    for(int cnt=1;cnt<10001;i++){

        int t=0;

        for(auto v: Prime){

            if(i%v==0){

                t=1;

                break;

            }

        }

        if(t)

            continue;

        Prime.push_back(i);

        cnt++;

    }

    printf("%lld",i-1);

    return 0;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.21 144
» 7 관리자 2023.05.24 105
5 6 관리자 2019.12.09 149
4 5 관리자 2023.05.25 100
3 3 관리자 2023.05.24 98
2 2 관리자 2019.12.09 149
1 1 관리자 2019.12.09 146
위로