diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-09-22 21:32:38 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:32:41 +0200 |
| commit | ab40629bd9914612aa869be23fa360a5dcd25929 (patch) | |
| tree | 55af35f58881075ebef6d4f5f097e1887c423255 /src | |
| parent | 90d859bd8b79bc7d4cd7228956ae4b5c97b4f60a (diff) | |
projecteuler solution 187
Diffstat (limited to 'src')
| -rw-r--r-- | src/projecteuler/187.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/projecteuler/187.c b/src/projecteuler/187.c new file mode 100644 index 0000000..a2e552e --- /dev/null +++ b/src/projecteuler/187.c @@ -0,0 +1,30 @@ +#include "common.h" +#include <stdlib.h> +#include <string.h> + +// TODO: works only on 64 bit systems + +const unsigned long limit = 100000000; + +int main(void) +{ + unsigned long* p = primes(limit/2); // sqrt(limit) + unsigned long pcount = p[0]; + unsigned long rcount = 0; + unsigned long i1, i2; + + for(i1=1; i1<=pcount; i1++) + for(i2=i1; i2<=pcount; i2++) + { + unsigned long result = p[i1] * p[i2]; + if(result >= limit) + break; + rcount++; + } + + printf("%li\n", rcount); + + free(p); + return 0; +} + |
