From 2f902fb082a394f511f83dc9b23d20ca44ee08ea Mon Sep 17 00:00:00 2001 From: drbaggy Date: Wed, 6 Jul 2022 01:19:50 +0100 Subject: added single result task 1 --- challenge-172/james-smith/perl/ch-1.pl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/challenge-172/james-smith/perl/ch-1.pl b/challenge-172/james-smith/perl/ch-1.pl index 9c6b5f5060..22443bb063 100644 --- a/challenge-172/james-smith/perl/ch-1.pl +++ b/challenge-172/james-smith/perl/ch-1.pl @@ -14,7 +14,7 @@ my @TESTS = ( ); my @t; -say "*** @{$_}\n\n", _dump( partition(@{$_}) ), "\n" for @TESTS; +say "*** @{$_}\n", _dump( first_partition(@{$_}) ), "\n--\n", _dump( partition(@{$_}) ), "\n" for @TESTS; if(0){ say '==============================='; @@ -34,6 +34,16 @@ sub partition { : $m > $p && is_prime $m ? [$m] : (); } +sub first_partition { + my ( $m, $n, $p ) = (@_,0); + $n > 1 + ? map { $p = $_; + map { return [$p, @{$_}] } + first_partition( $m-$p, $n-1, $p ) + } @{ primes $p+1, int( ($m-$n/2+1/2)/$n) } + : $m > $p && is_prime $m ? [$m] : (); +} + sub _dump { @_ ? join ', ', map { '[ '. join(', ', @{$_}).' ]' } @_ : '-- no solutions --'; } -- cgit