diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-05-24 21:39:58 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-05-24 21:39:58 +0800 |
commit | 1eefd58ca4fdb5d2f51f657bfd70c9a89a4707db (patch) | |
tree | abde0e4da3c7fe138f3874a94d8eb7d0e44c3224 /euler60.c | |
download | project_euler-1eefd58ca4fdb5d2f51f657bfd70c9a89a4707db.tar.xz |
initial commit
Diffstat (limited to 'euler60.c')
-rw-r--r-- | euler60.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/euler60.c b/euler60.c new file mode 100644 index 0000000..3bc933c --- /dev/null +++ b/euler60.c @@ -0,0 +1,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; +} |