diff options
| -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; } |
