diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2021-11-08 12:44:46 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2021-11-08 12:44:46 +0100 |
| commit | daf57f04732fc4bfbcab413729f348334a6338b6 (patch) | |
| tree | 15e7140deb30fae6e8bb9ad76a395c9180150b4c | |
| parent | 95903b6b139186fe0a85fc52df1ce886f04f3e52 (diff) | |
| download | perlweeklychallenge-club-daf57f04732fc4bfbcab413729f348334a6338b6.tar.gz perlweeklychallenge-club-daf57f04732fc4bfbcab413729f348334a6338b6.tar.bz2 perlweeklychallenge-club-daf57f04732fc4bfbcab413729f348334a6338b6.zip | |
Task 2 done.
| -rw-r--r-- | challenge-138/luca-ferrari/raku/ch-2.p6 | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/challenge-138/luca-ferrari/raku/ch-2.p6 b/challenge-138/luca-ferrari/raku/ch-2.p6 new file mode 100644 index 0000000000..72e7295a70 --- /dev/null +++ b/challenge-138/luca-ferrari/raku/ch-2.p6 @@ -0,0 +1,16 @@ +#!raku + +sub MAIN( Int:D $n where { $n > 0 } ) { + my $qrt = $n.sqrt; + my @digits = $n.split( '', :skip-empty ); + + # short circuit: esay case + 1.say and exit if @digits.sum == $qrt; + + # try to aggregate from left to right + for 1 ..^ @digits.elems { + last if @digits[ 0 .. $_ ].join.Int > $qrt; + '1'.say and exit if @digits[ 0 .. $_ ].join + @digits[ $_ + 1 .. * - 1 ].sum == $qrt; + } + +} |
