aboutsummaryrefslogtreecommitdiff
path: root/challenge-150/abigail/pascal
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-31 15:50:18 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-31 19:47:29 +0100
commit8487fe3f219c99dc720f99e2d53197c211deaf5b (patch)
tree97a4990ae8dfa3601c30efc7863baa5e5b4d4e37 /challenge-150/abigail/pascal
parentd52aa060e5c7663353b4d1a0186b608ef520dc9e (diff)
downloadperlweeklychallenge-club-8487fe3f219c99dc720f99e2d53197c211deaf5b.tar.gz
perlweeklychallenge-club-8487fe3f219c99dc720f99e2d53197c211deaf5b.tar.bz2
perlweeklychallenge-club-8487fe3f219c99dc720f99e2d53197c211deaf5b.zip
Week 150: Solutions
Diffstat (limited to 'challenge-150/abigail/pascal')
-rw-r--r--challenge-150/abigail/pascal/ch-1.p32
-rw-r--r--challenge-150/abigail/pascal/ch-2.p29
2 files changed, 61 insertions, 0 deletions
diff --git a/challenge-150/abigail/pascal/ch-1.p b/challenge-150/abigail/pascal/ch-1.p
new file mode 100644
index 0000000000..3a9fab74cc
--- /dev/null
+++ b/challenge-150/abigail/pascal/ch-1.p
@@ -0,0 +1,32 @@
+Program XXX;
+
+(* *)
+(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-150 *)
+(* *)
+
+(* *)
+(* Run as: fpc -och-1.out ch-1.p; ./ch-1.out < input-file *)
+(* *)
+
+uses
+ StrUtils, types;
+
+var
+ line: string;
+ fibs: TStringDynArray;
+ fib_tmp, fib_prev, fib_last: string;
+
+begin
+ while not eof do begin
+ readln (line);
+ fibs := SplitString (line, ' ');
+ fib_prev := fibs [0];
+ fib_last := fibs [1];
+ while length (fib_last) < 51 do begin
+ fib_tmp := fib_last;
+ fib_last := concat (fib_prev, fib_last);
+ fib_prev := fib_tmp;
+ end;
+ writeln (fib_last [51]);
+ end
+end.
diff --git a/challenge-150/abigail/pascal/ch-2.p b/challenge-150/abigail/pascal/ch-2.p
new file mode 100644
index 0000000000..a4187134c7
--- /dev/null
+++ b/challenge-150/abigail/pascal/ch-2.p
@@ -0,0 +1,29 @@
+Program XXX;
+
+(* *)
+(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-150 *)
+(* *)
+
+(* *)
+(* Run as: fpc -och-2.out ch-2.p; ./ch-2.out *)
+(* *)
+
+var
+ primes: array [1 .. 8] of integer = (2, 3, 5, 7, 11, 13, 17, 19);
+ n, p: integer;
+ has_square: boolean;
+
+begin
+ for n := 1 to 500 do begin
+ has_square := false;
+ for p := 1 to 8 do begin
+ if (n mod (primes [p] * primes [p])) = 0 then begin
+ has_square := true;
+ end;
+ end;
+ if not has_square then begin
+ write (n, ' ');
+ end
+ end;
+ writeln ('');
+end.