summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2010-09-22 23:26:28 +0200
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:32:41 +0200
commit17c199d9c5d55f21c8cee51a59f3c9e3da0ef40e (patch)
tree00e181e3ad4a960c767b1069e2ddffd83b25e14b /src
parentab40629bd9914612aa869be23fa360a5dcd25929 (diff)
fixed 32 bit issues
Diffstat (limited to 'src')
-rw-r--r--src/projecteuler/087.c8
-rw-r--r--src/projecteuler/187.c4
2 files changed, 4 insertions, 8 deletions
diff --git a/src/projecteuler/087.c b/src/projecteuler/087.c
index ef12d9f..e1b1ad8 100644
--- a/src/projecteuler/087.c
+++ b/src/projecteuler/087.c
@@ -2,8 +2,6 @@
#include <stdlib.h>
#include <string.h>
-// TODO: currently only works on 64 bit systems
-
const unsigned long limit = 50000000;
int main(void)
@@ -21,11 +19,11 @@ int main(void)
unsigned long p4 = p[i4];
unsigned long p3 = p[i3];
unsigned long p2 = p[i2];
- unsigned long long result = p4*p4*p4*p4;
+ unsigned long long result = (unsigned long long)p4*p4*p4*p4;
if(result >= limit) break;
- result += p3*p3*p3;
+ result += (unsigned long long)p3*p3*p3;
if(result >= limit) break;
- result += p2*p2;
+ result += (unsigned long long)p2*p2;
if(result >= limit) break;
numbers[result] = 1;
diff --git a/src/projecteuler/187.c b/src/projecteuler/187.c
index a2e552e..4bee151 100644
--- a/src/projecteuler/187.c
+++ b/src/projecteuler/187.c
@@ -2,8 +2,6 @@
#include <stdlib.h>
#include <string.h>
-// TODO: works only on 64 bit systems
-
const unsigned long limit = 100000000;
int main(void)
@@ -16,7 +14,7 @@ int main(void)
for(i1=1; i1<=pcount; i1++)
for(i2=i1; i2<=pcount; i2++)
{
- unsigned long result = p[i1] * p[i2];
+ unsigned long long result = (unsigned long long) p[i1] * p[i2];
if(result >= limit)
break;
rcount++;