diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2021-12-20 15:55:03 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2021-12-20 15:55:03 +0100 |
| commit | 15594821cbb4b8929a5d13f40a8abd53408cfcbb (patch) | |
| tree | 6f9499d06b860ed57455851e8017adccea34311b | |
| parent | 6970d0fd460308be9ca07b9bb2870b74ed894863 (diff) | |
| download | perlweeklychallenge-club-15594821cbb4b8929a5d13f40a8abd53408cfcbb.tar.gz perlweeklychallenge-club-15594821cbb4b8929a5d13f40a8abd53408cfcbb.tar.bz2 perlweeklychallenge-club-15594821cbb4b8929a5d13f40a8abd53408cfcbb.zip | |
Task 2 done
| -rwxr-xr-x | challenge-144/luca-ferrari/raku/ch-2.p6 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-144/luca-ferrari/raku/ch-2.p6 b/challenge-144/luca-ferrari/raku/ch-2.p6 new file mode 100755 index 0000000000..68ed1b9ebe --- /dev/null +++ b/challenge-144/luca-ferrari/raku/ch-2.p6 @@ -0,0 +1,40 @@ +#!raku + +# Sums all the couple of numbers +# in only direction, skipping the duplicated +# values +sub do-sum( @array ) { + my %sums; + + for 0 .. @array.end -> $index-left { + for $index-left ^.. @array.end -> $index-right { + next if $index-left == $index-right; + + %sums{ @array[ $index-left ] + @array[ $index-right ] }++; + } + } + + + my @found; + @found.push: $_.Int if %sums{ $_ } == 1 for %sums.keys; + @found; + +} + + +sub MAIN( Int $u where { $u > 0 }, + Int $v where { $v > 0 }, + Int $limit = 10 ) { + + + + my @ulam = $u, $v, $u + $v; + + while @ulam.elems < $limit { + @ulam.push: do-sum( @ulam ).grep( { $_ > @ulam[ * - 1 ] } ).min; + } + + + @ulam.join( ',' ).say; + +} |
