본문 바로가기
Computer Science

테네스의 특별한 소수

by OKOK 2019. 2. 12.

1. 소수 만들기

2. 나은 소수 만들기

3. 전처리 미리 해두고

4. 가져다 쓰기

5. 자료구조를 어떻게 만들었는지

6. 10개, 2차원 배열 오케이 


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
#include <stdio.h>
 
bool prime[1000001];
int prefix[1000001][10];
 
void eratos() {
    for (int i = 2; i <= 1000000; i++) {
        prime[i] = true;
    }
    for (int i = 2; i <= 1000; i++) {
        if (prime[i]) {
            for (int j = i * 2; j <= 1000000; j += i) {
                prime[j] = false;
            }
        }
    }
}
 
void setBetterPrime() {
    for (int i = 2; i <= 1000000; i++) {
        if (prime[i]) {
            int mok;
            int t = 1;
            while (mok = i / t) {
                prefix[i][mok % 10= 1;
                t *= 10;
            }
        }
        for (int d = 1; d <= 9; d++) {
            prefix[i][d] += prefix[i - 1][d];
        }
    }
}
 
 
int main() {
    freopen("input.txt""r", stdin);
    eratos();
    setBetterPrime();
 
    int T; scanf("%d"&T);
    for (int tc = 1; tc <= T; tc++) {
        int D, A, B; scanf("%d %d %d"&D, &A, &B);
        printf("#%d %d\n", tc, prefix[B][D] - prefix[A - 1][D]);
    }
    return 0;
}
 
cs

 


'Computer Science' 카테고리의 다른 글

늘어지는 소리 만들기  (0) 2019.02.12
콩순이의 가장 싼 팰린드롬  (0) 2019.02.12
콩순이의 팰린드롬  (0) 2019.02.12
다솔이의 다이아몬드 장식  (0) 2019.02.12
호엽이의 우뚝 선 산  (0) 2019.02.12

댓글