:: ADVANCE ::

90일차 1. sprime 본문

Algorithm/일일알고리즘

90일차 1. sprime

KSJ14 2014. 10. 8. 02:50
반응형

http://183.106.113.109/30stair/sprime/sprime.php?pname=sprime

 

super prime

 

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
#include <iostream>
using namespace std;
 
int check_prime(int n)
{
    int i;
    
    if(n == 1)    return 0;
 
    for(i = 2; i*i <= n; i++)    {
        if(n%i == 0)    {
            return 0;
        }
    }
    return 1;
}
 
void make_num(int prime, int n, int e)
{
    int i;
 
    prime = prime * 10 + n;
 
    if(e == 1)    {
        if(check_prime(prime))    {
            cout << prime << endl;
        }
        return ;
    }
 
    if(check_prime(prime))    {
        for(i = 1; i < 10; i += 2)    {
            make_num(prime, i, e-1);
        }
    }
    return ;
}
 
int main(void)
{
    int e;
    cin >> e;
 
    make_num(0, 2, e);
    make_num(0, 3, e);
    make_num(0, 5, e);
    make_num(0, 7, e);
 
    return 0;
}

 

ex) 7331, 733, 73, 7 이 소수이어야 super prime이라 한다.

한자리 소수를 찾고(7) 그 다음에 수를 붙여서 소수인지 판별하였다.

다음에 붙을 수를 1~9로 하여도 좋으나

맨 처음의 수는 한자리만으로 소수임을 판별하여야 하므로

직접 2, 3, 5, 7을 함수로 넣었으며 다음에 붙을 수는 짝수는 제외하여

연산량을 줄였다.

반응형

'Algorithm > 일일알고리즘' 카테고리의 다른 글

95일차 1. omok  (0) 2014.10.12
87일차 1. cross  (0) 2014.10.08
91일차 1. eratosthenes  (0) 2014.10.07
86일차 1. ncpc_event  (0) 2014.10.02
85일차 1. ladder  (0) 2014.10.02
Comments