기술 블로그

4948번 베르트랑 공준 본문

알고리즘 문제/BOJ

4948번 베르트랑 공준

parkit 2018. 9. 26. 21:29
728x90
반응형

소수 문제이다.


에라토스테네스의 체를 활용한 문제이다.




문제 : https://www.acmicpc.net/problem/4948


에라토스테네스의 체 : http://hsdevelopment.tistory.com/78




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <string>
#include <math.h>
#include <algorithm>
 
using namespace std;
 
#define MAX 2 * 123456 + 1
 
bool prime[MAX] = { true, };
 
void primeNumber() // 소수이면 true, 소수가 아니면 false
{
    int sqrtMax = sqrt(MAX);
 
    for (int i = 2; i <= sqrtMax; i++// i = 2 ~ sqrtMax
    {
        if (!prime[i]) continue;
 
        for (int j = 2 * i; j <= MAX; j += i) // j = 2 * i ~ MAX
        {
            prime[j] = false;
        }
    }
}
 
int main(void)
{
    memset(prime, truesizeof(prime));
 
    primeNumber();
 
    int N = 0, ans = 0;
 
    while (1)
    {
        scanf("%d"&N);
 
        if (N == 0break;
 
        for (int i = N + 1; i <= 2 * N; i++)
        {
            if (prime[i]) ++ans;
        }
 
        printf("%d\n", ans);
 
        ans = 0;
    }
 
    return 0;
}
cs


728x90
반응형

'알고리즘 문제 > BOJ' 카테고리의 다른 글

2188번 축사 배정  (0) 2018.09.29
15650번 N과 M(2)  (0) 2018.09.28
11652번 카드  (0) 2018.09.26
2839번 설탕 배달  (0) 2018.09.24
2563번 색종이  (0) 2018.09.24