www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 ��

www.acmicpc.net

#include <iostream>

using namespace std;

int n = 0;
int che[247000] = {1,1};

int main(void)
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);

  // 에라토스테네스의 체
  for(int i = 2 ; i < 247000 ; i++)
  {
    if(che[i] == 0)
    {
      for(int j = 2 ; i * j < 247000 ; j++)
      {
        che[i*j] = 1;
      }
    }
  }

  // 너무 쉽다!
  cin >> n;
  while(n)
  {
    int cnt = 0;
    for(int i = n+1 ; i <= 2*n ; i++)
    {
      if(che[i] == 0) cnt++;
    }
    cout << cnt << '\n';

    cin >> n;
  }
}

 

[Try]

1. 이것도 그냥 에라토스테네스의 체 사용하여 풀면 된다. 왜 실버2인지 모르겠을 정도로 단순하다.

 

[Point]

1. 완전탐색으로 n 번 말고 n 의 제곱근 까지만 돌려도 시간내에 돌릴 수 있다.

+ Recent posts