commit d12e409401189202c94559f57e072a237a831e42 parent 5eec787cdd468d78827ef9725162f54a62f5e3d1 Author: Samir Parikh <noreply@samirparikh.com> Date: Thu, 25 Nov 2021 02:32:33 +0000 update SumOfMultiples.pm to get all tests to pass Diffstat:
M | sum-of-multiples/SumOfMultiples.pm | | | 18 | ++++++++++++------ |
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/sum-of-multiples/SumOfMultiples.pm b/sum-of-multiples/SumOfMultiples.pm @@ -12,16 +12,22 @@ sub sum_of_multiples { my ($input) = @_; my @factors = @{$input->{factors}}; my $limit = $input->{limit}; + my %multiples = (); my $sum_of_multiples = 0; - #print "@factors\n"; - print join ":", @factors; + return $sum_of_multiples unless (@factors); # return 0 if empty array foreach my $factor (@factors) { - # if current factor is greater than or equal to the limit, - # skip to the next one + # skip if current factor is greater than or equal to the limit, next if $factor >= $limit; + next unless ($factor); # skip if factor equals 0 + my $current = $factor; + while ($current < $limit) { + $multiples{$current} = $current; # add a multiple to the hash + $current += $factor; + } + } + foreach my $key (keys %multiples) { + $sum_of_multiples += $key; } - #print "$limit\n"; - #return undef; return $sum_of_multiples; }