diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-06 18:41:33 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-06 18:41:33 +0100 |
| commit | b97c7e9a60e75f3a5daedbc80fe7d767305b4d53 (patch) | |
| tree | aa839505965d092b63090abbbe9a2a08cabf9563 /challenge-123/abigail/pascal | |
| parent | ec311b177fa675877c45ed1518dceff5c787d13b (diff) | |
| download | perlweeklychallenge-club-b97c7e9a60e75f3a5daedbc80fe7d767305b4d53.tar.gz perlweeklychallenge-club-b97c7e9a60e75f3a5daedbc80fe7d767305b4d53.tar.bz2 perlweeklychallenge-club-b97c7e9a60e75f3a5daedbc80fe7d767305b4d53.zip | |
Week 3 & Week 123: Pascal solution for part 1
Diffstat (limited to 'challenge-123/abigail/pascal')
| -rw-r--r-- | challenge-123/abigail/pascal/ch-1.p | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/challenge-123/abigail/pascal/ch-1.p b/challenge-123/abigail/pascal/ch-1.p new file mode 100644 index 0000000000..f4f7b2515f --- /dev/null +++ b/challenge-123/abigail/pascal/ch-1.p @@ -0,0 +1,48 @@ +Program ch1; + +(* *) +(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-123 *) +(* *) + +(* *) +(* Run as: fpc -och-1.out ch-1.p; ./ch-1.out < input-file *) +(* *) + +var + max, count, next_2, next_3, next_5: integer; + min, c2, c3, c5: qword; + ugly: array of qword; + +begin + while not eof do begin + readln (max); + setlength (ugly, max); + + ugly [0] := 1; + count := 0; + next_2 := 0; + next_3 := 0; + next_5 := 0; + min := 0; + + while count < max - 1 do begin + inc (count); + + c2 := 2 * ugly [next_2]; + c3 := 3 * ugly [next_3]; + c5 := 5 * ugly [next_5]; + + if (c2 <= c3) and (c2 <= c5) then begin min := c2; end; + if (c3 <= c2) and (c3 <= c5) then begin min := c3; end; + if (c5 <= c2) and (c5 <= c3) then begin min := c5; end; + + ugly [count] := min; + + if c2 <= ugly [count] then begin inc (next_2); end; + if c3 <= ugly [count] then begin inc (next_3); end; + if c5 <= ugly [count] then begin inc (next_5); end; + end; + + writeln (ugly [count]); + end +end. |
