From 3eb0e9bb142afaebcd86f00bdc62795568d48bb5 Mon Sep 17 00:00:00 2001 From: Dave Cross Date: Mon, 14 Oct 2019 09:44:21 +0100 Subject: Challenge #30 Task #2 --- challenge-030/dave-cross/perl5/ch-2.pl | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 challenge-030/dave-cross/perl5/ch-2.pl diff --git a/challenge-030/dave-cross/perl5/ch-2.pl b/challenge-030/dave-cross/perl5/ch-2.pl new file mode 100644 index 0000000000..bc1e250f83 --- /dev/null +++ b/challenge-030/dave-cross/perl5/ch-2.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use feature qw[say state]; + +use List::Util 'sum'; + +# If three numbers add to 12 then the +# highest number you can have is 10. +my $max = 10; + +for my $x (1 .. $max) { + for my $y (1 .. $max) { + for my $z (1 .. $max) { + say join ', ', $x, $y, $z if valid($x, $y, $z); + } + } +} + +sub valid { + state $seen; + + return if $seen->{join ',', sort { $a <=> $b} @_}; + return unless sum(@_) == 12; + return unless grep { ! ($_ % 2) } @_; + $seen->{join ',', sort { $a <=> $b} @_} = 1; + return 1; +} -- cgit