diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-02-17 21:23:07 +0100 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-02-17 21:23:07 +0100 |
| commit | f40eb4e6815a4277c2c1285a123b2780c2dde8d3 (patch) | |
| tree | 8dadbe781fdbe52be945f83e5135a5cd0b8e2f71 /challenge-048/markus-holzer | |
| parent | 19e5f9a3baf985cfb6244f652372772b38a4f39f (diff) | |
| download | perlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.tar.gz perlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.tar.bz2 perlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.zip | |
hardened
Diffstat (limited to 'challenge-048/markus-holzer')
| -rw-r--r-- | challenge-048/markus-holzer/raku/ch-2.p6 | 101 |
1 files changed, 54 insertions, 47 deletions
diff --git a/challenge-048/markus-holzer/raku/ch-2.p6 b/challenge-048/markus-holzer/raku/ch-2.p6 index a98153ca01..68604cd2ed 100644 --- a/challenge-048/markus-holzer/raku/ch-2.p6 +++ b/challenge-048/markus-holzer/raku/ch-2.p6 @@ -1,47 +1,54 @@ -my $formatter = sub { sprintf '%02d%02d%04d', .month, .day, .year given $^date }; - -.say for (2000..2999) - .grep({ - 0 < .substr(2,2).flip < 13 && - 0 < .substr(0,2).flip < 32 }) - .map({ - Date.new($_, |.flip.comb(2), :$formatter ) }); - -# 36 solutions in total -# 10022001 -# 01022010 -# 11022011 -# 02022020 -# 12022021 -# 03022030 -# 04022040 -# 05022050 -# 06022060 -# 07022070 -# 08022080 -# 09022090 -# 10122101 -# 01122110 -# 11122111 -# 02122120 -# 12122121 -# 03122130 -# 04122140 -# 05122150 -# 06122160 -# 07122170 -# 08122180 -# 09122190 -# 10222201 -# 01222210 -# 11222211 -# 02222220 -# 12222221 -# 03222230 -# 04222240 -# 05222250 -# 06222260 -# 07222270 -# 08222280 -# 09222290 - +my $formatter = sub { sprintf '%02d%02d%04d', .month, .day, .year given $^date };
+
+#.say for (1300..1399)
+.say for (2000..2990)
+ # filter out most of the impossible years
+ .grep({
+ 0 < .substr(2,2).flip < 13 &&
+ 0 < .substr(0,2).flip < 32 })
+ # Try making a date, this fails sometimes, eg for the year 1311 -> 11311311
+ # which is not a valid date
+ .map({
+ try Date.new($_, |.flip.comb(2), :$formatter ) })
+ # So we need to filter these out
+ .grep({
+ .so });
+
+# 36 solutions in total
+# 10022001
+# 01022010
+# 11022011
+# 02022020
+# 12022021
+# 03022030
+# 04022040
+# 05022050
+# 06022060
+# 07022070
+# 08022080
+# 09022090
+# 10122101
+# 01122110
+# 11122111
+# 02122120
+# 12122121
+# 03122130
+# 04122140
+# 05122150
+# 06122160
+# 07122170
+# 08122180
+# 09122190
+# 10222201
+# 01222210
+# 11222211
+# 02222220
+# 12222221
+# 03222230
+# 04222240
+# 05222250
+# 06222260
+# 07222270
+# 08222280
+# 09222290
+
|
