summaryrefslogtreecommitdiff
path: root/euler60.c
blob: 3bc933c384a97e280327433df3341bb6af2722bf (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#define NP 10000

int primetab[NP];

void genprimes()
{
    int i=2,j;
    primetab[0] = 2;
    primetab[1] = 3;
    
    while (i<NP) {
        primetab[i] = primetab[i-1]+2;
        for (j=0; j<i; j++) {
            if (primetab[i]%primetab[j]==0) {
                // try next
                primetab[i] += 2;
                j=-1;
                continue;
            }
        }
        i++;
    }
}

void search(int depth)
{
    static int result[5]={0,0,0,0,0}, bestsum=0;

    int s=0,i;

    if (depth==5) {
        for (i=0; i<5; i++) {
            printf("%d ", primetab[result[i]]);
        }
        printf("best=%d\n", bestsum);
    }
    
    for (i=0; i<depth; i++) {
        s += primetab[result[i]];
    }
    if (bestsum && s>bestsum) return;
    
    if (depth==0) {
        result[0] = 1;
    } else {
        result[depth] = result[depth-1]+1;
    }
    if (result[depth]>=NP) {
        return;
    }
    
    while (result[depth]<NP) {
        // check if it's ok
    }
            
}

int main()
{
    genprimes();
    int i;
    
    for (i=0; i<1000; i++) {
        printf("%d\n", primetab[i]);
    }
    return 0;
}