diff options
| -rw-r--r-- | src/projecteuler/087.c | 8 | ||||
| -rw-r--r-- | src/projecteuler/187.c | 4 |
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++; |
