diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-07-06 01:19:50 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-07-06 01:19:50 +0100 |
| commit | 2f902fb082a394f511f83dc9b23d20ca44ee08ea (patch) | |
| tree | 874a4f43439429a29752cbf0d6ad88e5798c3661 | |
| parent | fe32ae54b9a8097119b2d2063b43b663e3d0ad2b (diff) | |
| download | perlweeklychallenge-club-2f902fb082a394f511f83dc9b23d20ca44ee08ea.tar.gz perlweeklychallenge-club-2f902fb082a394f511f83dc9b23d20ca44ee08ea.tar.bz2 perlweeklychallenge-club-2f902fb082a394f511f83dc9b23d20ca44ee08ea.zip | |
added single result task 1
| -rw-r--r-- | challenge-172/james-smith/perl/ch-1.pl | 12 |
1 files changed, 11 insertions, 1 deletions
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 --'; } |
