diff options
| author | Roger Bell_West <roger@firedrake.org> | 2019-08-07 14:53:16 +0100 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2019-08-07 14:53:16 +0100 |
| commit | ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca (patch) | |
| tree | 43629f818959091e658d7f2894e581add0bfc462 | |
| parent | 7b396bf71e40e442ab4fe9f803e28e3d89c97dc3 (diff) | |
| download | perlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.tar.gz perlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.tar.bz2 perlweeklychallenge-club-ac19ef2f060bfe577c9f335d08ebf9f53b6c93ca.zip | |
More idiomatic, using a SetHash rather than a list
| -rwxr-xr-x | challenge-020/roger-bell-west/perl6/ch-2.p6 | 12 |
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; } |
