From ee9765dbacdc271c1c3a55cd0ff19b49c973a631 Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Thu, 31 Mar 2011 17:28:23 -0700 Subject: [PATCH] Finished prolog and implemented objc for euler1 --- Makefile | 2 +- e1.m | 15 +++++++++++++++ e1.pl | 8 +++++++- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 e1.m diff --git a/Makefile b/Makefile index 8e7cee8..c782583 100644 --- a/Makefile +++ b/Makefile @@ -3,4 +3,4 @@ default: mcs *.cs clean: - rm -r -f *.exe *.beam + rm -r -f *.exe *.beam a.out diff --git a/e1.m b/e1.m new file mode 100644 index 0000000..bb87be6 --- /dev/null +++ b/e1.m @@ -0,0 +1,15 @@ +// comment + +#include + + +int main(int argc, char **argv) { + int sum = 0; + int i; + for(i = 2; i < 1000; i++) { + if ( i % 3 == 0 || i % 5 == 0) { + sum += i; + } + } + printf("%d\n", sum); +} diff --git a/e1.pl b/e1.pl index 862396f..06329bb 100644 --- a/e1.pl +++ b/e1.pl @@ -4,4 +4,10 @@ range(Start, End, [Start| Acc]) :- Next is Start + 1, range(Next, End, Acc). divisors_3_5([], []). divisors_3_5([X|Xs], [X|Ys]) :- 0 is X rem 3, divisors_3_5(Xs, Ys). divisors_3_5([X|Xs], [X|Ys]) :- 0 is X rem 5, divisors_3_5(Xs, Ys). -divisors_3_5([X|Xs], Ys]) :- divisors_3_5(Xs, Ys). +divisors_3_5([X|Xs], Ys) :- divisors_3_5(Xs, Ys). + +sum(List, Result) :- sum(List, 0, Result). +sum([], Acc, Acc). +sum([X|Xs], Acc, Num) :- Inc is X + Acc, sum(Xs, Inc, Num). + +e1(Result) :- range(1,1000, R), divisors_3_5(R, Ds), sum(Ds,Result).