aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2019-08-07 14:53:16 +0100
committerRoger Bell_West <roger@firedrake.org>2019-08-07 14:53:16 +0100
commitac19ef2f060bfe577c9f335d08ebf9f53b6c93ca (patch)
tree43629f818959091e658d7f2894e581add0bfc462
parent7b396bf71e40e442ab4fe9f803e28e3d89c97dc3 (diff)
downloadperlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.tar.gz
perlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.tar.bz2
perlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.zip
More idiomatic, using a SetHash rather than a list
-rwxr-xr-xchallenge-020/roger-bell-west/perl6/ch-2.p612
1 files changed, 5 insertions, 7 deletions
diff --git a/challenge-020/roger-bell-west/perl6/ch-2.p6 b/challenge-020/roger-bell-west/perl6/ch-2.p6
index 519f2c8866..5b803cfb6b 100755
--- a/challenge-020/roger-bell-west/perl6/ch-2.p6
+++ b/challenge-020/roger-bell-west/perl6/ch-2.p6
@@ -16,15 +16,13 @@ while (1) {
}
sub divisors_unself ($k) {
- my @d=(1);
- my @e;
+ my SetHash $dd .= new;
+ $dd{ 1 }++;
for 2..$k.sqrt.Int -> $d {
if ($k % $d == 0) {
- push @d,$d,$k/$d;
- if @d[*-1] == $d {
- pop @d;
- }
+ $dd{ $d }++;
+ $dd{ $k/$d }++;
}
}
- return @d;
+ return $dd.keys;
}