From 86dc29940123f535a2e2c8afd0a18684f3b1ddc0 Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 18 May 2020 09:16:26 +0100 Subject: Solutions for challenge #61. --- challenge-061/roger-bell-west/perl/ch-1.pl | 24 ++++++++++++++++++++++++ challenge-061/roger-bell-west/perl/ch-2.pl | 27 +++++++++++++++++++++++++++ challenge-061/roger-bell-west/raku/ch-1.p6 | 20 ++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100755 challenge-061/roger-bell-west/perl/ch-1.pl create mode 100755 challenge-061/roger-bell-west/perl/ch-2.pl create mode 100755 challenge-061/roger-bell-west/raku/ch-1.p6 diff --git a/challenge-061/roger-bell-west/perl/ch-1.pl b/challenge-061/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..79664f1b1b --- /dev/null +++ b/challenge-061/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,24 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use integer; + +my @list=@ARGV; +unless (@list) { + @list=(2,5,-1,3); +} + +my ($mxp,$a,$b); + +foreach my $ai (0..$#list) { + foreach my $bi ($ai..$#list) { + my $p=1; + map {$p*=$_} @list[$ai..$bi]; + if (!defined $mxp || $p > $mxp) { + ($mxp,$a,$b)=($p,$ai,$bi); + } + } +} + +print join(' * ',@list[$a..$b]),' = ',$mxp,"\n"; diff --git a/challenge-061/roger-bell-west/perl/ch-2.pl b/challenge-061/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..5b1053794d --- /dev/null +++ b/challenge-061/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,27 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use List::Util qw(min); + +my $in=$ARGV[0] || '25525511135'; + +my @buf=([$in]); +while (my $t=shift @buf) { + my @l=@{$t}; + my $r=pop @l; + if ($r eq '' && scalar @l == 4) { + print join('.',@l),"\n"; + } + if (scalar @l >= 4) { + next; + } + foreach my $fl (1..min(3,length($r))) { + my $a=substr($r,0,$fl); + if ($a <= 255 && ($a==0 || $a =~ /^[1-9]/)) { + my $b=substr($r,$fl); + push @buf,[@l,substr($r,0,$fl),$b]; + } + } +} diff --git a/challenge-061/roger-bell-west/raku/ch-1.p6 b/challenge-061/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..48a5baeea9 --- /dev/null +++ b/challenge-061/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,20 @@ +#! /usr/bin/perl6 + +my @list=@*ARGS; +unless (@list) { + @list=(2,5,-1,3); +} + +my ($mxp,$a,$b); + +for (0..@list.end) -> $ai { + for ($ai..@list.end) -> $bi { + my $p=1; + map {$p*=$_}, @list[$ai..$bi]; + if (!$mxp.defined || $p > $mxp) { + ($mxp,$a,$b)=($p,$ai,$bi); + } + } +} + +say join(' * ',@list[$a..$b]),' = ',$mxp; -- cgit