diff options
| -rw-r--r-- | challenge-030/Leoltron/README | 1 | ||||
| -rw-r--r-- | challenge-030/Leoltron/perl5/ch-1.pl | 11 | ||||
| -rw-r--r-- | challenge-030/Leoltron/perl5/ch-2.pl | 22 |
3 files changed, 34 insertions, 0 deletions
diff --git a/challenge-030/Leoltron/README b/challenge-030/Leoltron/README new file mode 100644 index 0000000000..28aeaf66ae --- /dev/null +++ b/challenge-030/Leoltron/README @@ -0,0 +1 @@ +Solution by Leoltron diff --git a/challenge-030/Leoltron/perl5/ch-1.pl b/challenge-030/Leoltron/perl5/ch-1.pl new file mode 100644 index 0000000000..9b23635d2f --- /dev/null +++ b/challenge-030/Leoltron/perl5/ch-1.pl @@ -0,0 +1,11 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use 5.010; + +my $week_day = 2; +for (2019 .. 2099) { + $week_day = ($week_day + ($_ % 4 == 0 ? 2 : 1)) % 7; + say $_ if $week_day == 0; +} diff --git a/challenge-030/Leoltron/perl5/ch-2.pl b/challenge-030/Leoltron/perl5/ch-2.pl new file mode 100644 index 0000000000..d497106550 --- /dev/null +++ b/challenge-030/Leoltron/perl5/ch-2.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use 5.010; + +use List::Util qw(min); +use POSIX qw(ceil); + +use constant SUM => 12; +use constant MIN_FIRST => ceil(SUM / 3); +use constant MAX_FIRST => SUM - 2; + +foreach my $first (MIN_FIRST .. MAX_FIRST) { + my $min_second = ceil((SUM -$first) / 2); + my $max_second = min($first, SUM - $first - 1); + foreach my $second ($min_second .. $max_second) { + my $third = SUM - $first - $second; + say "$first, $second, $third" + } +} + |
